使用jQuery选择表中两个元素之间的行

Posted

技术标签:

【中文标题】使用jQuery选择表中两个元素之间的行【英文标题】:Select rows between two elements in a table with jQuery 【发布时间】:2013-07-28 00:08:15 【问题描述】:

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

我的尝试是这样的:

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

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

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

【问题讨论】:

【参考方案1】:

其实这很容易:(我仍然愿意接受其他方式)

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于使用jQuery选择表中两个元素之间的行的主要内容,如果未能解决你的问题,请参考以下文章

jQuery:计算表中的行数

如何在实体框架中的两个表之间进行左连接操作时从左表中选择唯一行

从两个表中选择比预期更多的行

如何从两个表中选择同一字段中具有相同值的行?

MySQL Query Join 从两个表中选择不匹配的行

如何使用从两个表中的选择查询问题检索行