2011-07-28 2 views
3

그럼에도 불구하고, 내가 3 명 div의이 사업부의 모든 요소를 ​​포장하기 :사용 jQuery를 내가 아주 이상한 마크 업을 가지고 있지만

<div id="div1"></div> 

<div id="div4"></div> 

<div id="div12"></div> 

이 3 명 div의하지만 내가 할 필요가있다 그 사이에 다른 요소가있을 수 있습니다

<div class="wrapped"> 
    <div id="div1"></div> 

    <div id="div4"></div> 

    <div id="div12"></div> 
</div> 

이 가능 jQuery의 포장 또는 wrapAll 기능을 사용하여 : 마크 업이 같이 끝날 수 있도록이 3 명 div의 포장 사업부가 있는지 확인?

+0

3 개 div 사이의 다른 모든 요소도 래핑해야합니까? –

답변

6

wrapAll()으로 가능합니다. 당신은 포함 #div1#div12 사이에 요소를 일치 nextUntil(), andSelf()add()을 사용할 수 있습니다 : 당신이 선호하는 경우가 래퍼 VAR 제거 할 수

$("#div1").nextUntil("#div12").andSelf().add("#div12") 
      .wrapAll("<div class='wrapped'></div>"); 
+3

div 사이에 일반 텍스트가있는 경우에는 작동하지 않습니다. 내 예제를 참조하십시오. http://jsfiddle.net/alp82/PZvEd/ – Alp

+0

@Alp, 좋은 지적. 질문자, 당신 사건에 문제가 있습니까? –

+0

흠, 실제로 랩핑 작업이 진행되지 않고 랩에 하나의 요소 만 들어갑니다. – benhowdle89

1
var wrapper = $('<div></div>').addClass('wrapped'); 
var parent = $('#div1').parent(); 
wrapper.append($('#div1, #div4, #div12')).appendTo(parent); 

. 여기에 jsFiddle이 있습니다 : http://jsfiddle.net/DHTd6/

+0

정확한 피들과 연결 되었습니까? – jensgram

+0

@jensgram heh. 나는하지 않았다. 그 바이올린은 다른 질문이었습니다. 그 점을 지적 해 주셔서 감사합니다. –