jquery - 获取除第一行和最后一行之外的所有行

标签 jquery jquery-selectors

我想动态地将一个类添加到表的所有行(第一行和最后一行除外)。我该如何在不为行分配 css 类来识别它们的情况下执行此操作。我目前正在获取除第一行之外的所有内容

$("#id").find("tr:gt(0)")

我需要以某种方式将其与 not("tr:last") 结合起来?

最佳答案

删除gt() ,我认为它比 :first 慢一点.

使用not():first 结合使用和:last :

$('table#tbl > tbody > tr').not(':first').not(':last').addClass('highlight');

大多数浏览器会自动添加 tbody表标记中的元素如果丢失,这就是直接子选择器失败的原因 - 没有 <tr>作为 <table> 的直接子元素的元素标签。

我不能 100% 确定所有浏览器都是这样做的,所以添加 <tbody> 会更安全。手动。否则你需要一点嗅探,并且无法将其作为一个内衬来完成:

if($('table#tbl > tbody').size() > 0) {
    $('table#tbl > tbody > tr').not(':first').not(':last').addClass('highlight');
} else {
    $('table#tbl > tr').not(':first').not(':last').addClass('highlight');
}

希望这能解决您的问题!

关于jquery - 获取除第一行和最后一行之外的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2253658/

相关文章:

javascript - .next() 不适用于所有 div

javascript - jQuery 选择具有特定类的目标表单中的输入元素

jquery - 手机javascript中的2D UIScrollView?

javascript - 平滑 jQuery 转换

javascript - 单击链接时更改 div 中的内容

jquery 选择 Table,但只能在 Div 之后

jquery - 选择不以http开头的href

javascript - 清除有关更改/隐藏禁用属性的 jquery.validate 错误消息

javascript - 在javascript中覆盖对象值

jquery - 根据多个属性选择一个html元素