1

我想将每组<h2>和包装<table>在它们自己的内部<div>,这样我就可以使用 CSS 操作新容器。

下面是我正在使用的 HTML 的简化版本:

<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>

注意:我只在主题层上工作,所以 jQuery(1.3.2 版)和 CSS 是我的工具。

4

3 回答 3

2

在这种情况下,您可以使用nextUntilwrapAll :

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

演示:http: //jsfiddle.net/9w9Sp/

于 2013-03-18T06:33:13.743 回答
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();
});

见小提琴

于 2013-03-18T06:43:42.220 回答
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" />');
}
于 2013-03-29T06:41:12.290 回答