2013-03-18 2 views
1

<h2><table>의 각 집합을 각각 <div> 내에 포함하고 싶습니다. 따라서 CSS로 새 컨테이너를 조작 할 수 있습니다.두 세트의 각 세트를 jQuery로 포장하는 방법은 무엇입니까?

<div> 
<h3></h3> 
<h2 class="product-line-term-name">Product 1</h2> 
<table class="views-view-grid"></table> 
<h3></h3> 
<h2 class="product-line-term-name">Product 2</h2> 
<table class="views-view-grid"></table> 
<h3></h3> 
<h2 class="product-line-term-name">Product 3</h2> 
<table class="views-view-grid"></table> 
</div> 

참고 :

다음은 내가 작업하고있는 HTML의 단순화 된 버전입니다 jQuery를 (버전 1.3.2) 및 CSS 내 도구 그래서 난 단지 주제 층에서 일하고 있습니다.

+0

왜 CSS로 태그를 조작 할 수 없습니까? – lukeocom

답변

0

봐이 코드

jQuery.each($('.product-line-term-name'), function(i, val) { 
    //Create new element 
    var div = "<div>" + $(this)[0].outerHTML + $(this).next()[0].outerHTML + "</div>"; 

    $(this).prev().after(div); 
    $(this).next().remove(); 
    $(this).remove(); 
}); 

See fiddle

+0

This 현재 사이트에 설치된 jQuery (1.3.2) 버전에서 저에게 도움이되었습니다. – JCL

2

이 경우 nextUntilwrapAll를 사용할 수있다 :

$('h3').each(function(){ 
    $(this).nextUntil('h3').wrapAll('<div class="example" />'); 
}); 

데모 : http://jsfiddle.net/9w9Sp/

+0

그게 좋겠지 만 방금 사이트가 jQuery 1.3.2를 실행하고 있다는 것을 깨닫게되었고 .nextUntil이 1.4에 추가되었습니다. – JCL

+0

그런 다음 1.3.2가 꽤 오래되었고 어쩌면 많은 유용한 기능이 부족하기 때문에 버전을 업그레이드 할 것을 제안합니다 – Eli

0

내 생각에 다음을 코드가 게재됩니다. jQuery 1.3.2의 용도 :

var h3_length = $('h3').length; 

for(var i= h3_length - 1; i>= 0; i--) { 
    $('h3').eq(i).nextAll().not(".test, h3").wrapAll('<div class="test" />'); 
}