在第一个表w / jQuery的每一行中选择第一个TD

时间:2012-01-04 17:46:32

标签: jquery

我需要选择满足以下条件的每个表行的第一个TD:

  1. TD没有colspan
  2. TD在第一个表中,而不是任何嵌套的
  3. 以下对我不起作用......

    $("table:first > td:first-child").not("[colspan]").css("background-color","red");
    

3 个答案:

答案 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。你应该明确地将它包含在你的表中,因为大多数浏览器(但不一定全部)都会在丢失时注入它。


如果您要包含theadtfoot个元素,请使用*代替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');