jQuery包装表行

jQuery包装表行,jquery,html-table,Jquery,Html Table,我试图使用jQuery包装一组连续的表行,但当我试图将它们作为目标时,它并没有找到我期望的行 $("tr.row1").next("tr:lt(4)").wrapAll("<tr class='wrapped'><td><table></table></td></tr>");​ $(“tr.row1”).next(“tr:lt(4)”).wrapAll(“”);​ 我不确定如何正确解释这一点,请看以下示例: 它不是包装第

我试图使用jQuery包装一组连续的表行,但当我试图将它们作为目标时,它并没有找到我期望的行

$("tr.row1").next("tr:lt(4)").wrapAll("<tr class='wrapped'><td><table></table></td></tr>");​
$(“tr.row1”).next(“tr:lt(4)”).wrapAll(“”);​
我不确定如何正确解释这一点,请看以下示例:

它不是包装第2行第3行第4行和第5行,而是包装接下来的四行第2行。

​$('tr.row2')。每个(函数(){
​$('tr.row2').each(function() {
    $(this).nextUntil('tr.row5 + *').andSelf().wrapAll("<tr class='wrapped'><td colspan='3'><table></table></td></tr>");
});​​​​​​​​​​​​​​​​​
$(this.nextUntil('tr.row5+*')和self().wrapAll(“”); });​​​​​​​​​​​​​​​​​
这将从第2行换行到第5行。(如果需要,它还将包装的colspan设置为3)


这应该选择您需要的行,但是包装元素正在破坏结构

作为测试,我只是选择前四行并将红色应用于它们,效果很好

$("table").each(function(){
    $("tr",this).slice(1,5).css('color','red')
})
$('table')。每个(函数(){
$(“tr:gt(0)”,this.wrapAll(“”);
})

你的意思是
$('tr[class^=“row”]:lt(4)');​​​​​​​​​​?您是要包装全部四行还是仅包装第一行?如果表中的行数超过4,您是否只需要前4行?我想他正在尝试包装除第一行以外的所有行。我希望它包装第2、3、4、5行。请将所有代码从JSFIDLE传输到此处。在您的帖子中,我们考虑的唯一代码是“代码> $(“Tr.WRO1”)。​因此我们无法帮助您。是的!这太完美了,非常感谢!你能解释一下+*在nextUntil中的作用吗?nextUntil以独占方式选择
。这意味着它不选择第一个和最后一个元素<代码>+*
将选择移动到“进一步移动一个元素”。这样您也可以得到
tr.row5
本身
andSelf()
然后将第一个元素添加到集合中。@Jables:它是“下一个相邻选择器”:
$('table').each(function(){
    $("tr:gt(0)",this).wrapAll("<tr class='wrapped'><td colspan='3'><table></table></td></tr>");  
})