1

我有一张桌子。我想tr用 jQuery 选择两个选定元素之间的所有元素。

我的尝试是这样的:

$('tr:has(td.selected:first)').nextUntil('tr:has(td.selected:last)').
    addClass('test');

但我选择了最后一个元素。为什么 ?

在这里小提琴:http: //jsfiddle.net/k4fMM/

4

2 回答 2

2

实际上这很容易:(我仍然对其他方式持开放态度)

$('tr:has(td.selected):first').nextUntil('tr:has(td.selected):last').
    addClass('test');

更新小提琴:http: //jsfiddle.net/V6fC3/

于 2013-07-27T22:35:27.667 回答
0

:firstand选择器在:last您使用它们的上下文中不起作用,因为td.selected每个块中只有一个实例匹配has(),所以最终发生的是第一个tr:has(.selected)到第二个之间的所有内容tr:has(.selected)都匹配,第二个之后的所有内容tr:has(.selected)都是匹配为好

解决此问题的最佳选择可能是执行以下操作:http: //jsfiddle.net/mC5qz/

于 2013-07-27T22:36:38.347 回答