use*_*757 52 jquery jquery-selectors
我想动态地向表的所有行添加一个类,除了第一行和最后一行.如果没有为行分配css类来识别它们,我将如何做到这一点.我正在获得除了第一行之外的所有内容
$("#id").find("tr:gt(0)")
Run Code Online (Sandbox Code Playgroud)
我需要以not("tr:last")某种方式结合这个吗?
Tat*_*nen 97
放下gt(),因为我认为它比它慢一点:first.
使用not()结合:first和:last:
$('table#tbl > tbody > tr').not(':first').not(':last').addClass('highlight');
Run Code Online (Sandbox Code Playgroud)
大多数浏览器会自动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');
}
Run Code Online (Sandbox Code Playgroud)
希望这能解决你的问题!
Pro*_*mit 12
为什么不呢?
$('table tr:not(:first-child):not(:last-child)');
Run Code Online (Sandbox Code Playgroud)
也适用于纯CSS选择器.
您可以.not()通过用逗号分隔选择器来将这些方法合二为一:
$('#id tr').not(':first, :last');
$('#id tr:not(:first, :last');
Run Code Online (Sandbox Code Playgroud)
请注意,第二个在纯 CSS 中无效,只能作为 jQuery 选择器。对于纯 CSS,您必须使用 @Sumit 的答案。
| 归档时间: |
|
| 查看次数: |
69138 次 |
| 最近记录: |