我需要选择满足以下条件的每个表行的第一个TD:
以下对我不起作用......
$("table:first > td:first-child").not("[colspan]").css("background-color","red");
答案 0 :(得分:1)
TD
可能不是TABLE
的直接后代(中间应该有TR
),所以只需删除选择器中的>
:
$('table:first td:first-child:not([colspan])');
另外,我认为这只是不推荐使用的> child
选择器(当选择器中没有父级时)。 parent > child
应完全有效:
注意:$(“> elem”,上下文)选择器将来会被弃用 发布。因此不鼓励使用它来代替使用替代方案 选择器。
答案 1 :(得分:1)
要限制外部表格的td
,您可以使用多个子选择器向下钻取到特定级别。
$("table:first > tbody > tr > td:first-child").not("[colspan]")
请注意,我添加了tbody
。你应该明确地将它包含在你的表中,因为大多数浏览器(但不一定全部)都会在丢失时注入它。
如果您要包含thead
和tfoot
个元素,请使用*
代替tbody
。
$("table:first > * > tr > td:first-child").not("[colspan]")
答案 2 :(得分:0)
/* This piece of code selects every first TD element without colspan
* in EVERY NOT nested TABLE
*/
// Select all without colspan
$('table td:first-child:not([colspan])').filter(
// filter out those having more than 1 parent table
function() {
return $(this).parents('table').length == 1
}).css('background', 'red');