Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 查找特定的td背景色_Jquery_Html_Css - Fatal编程技术网

Jquery 查找特定的td背景色

Jquery 查找特定的td背景色,jquery,html,css,Jquery,Html,Css,我有一排有5个td的桌子 我正在单击行中的第二个td。我得到了它的背景色,并将其与同一行中其他td的背景色进行比较 我想和排在第四位的td进行比较。当我这么做的时候 console.log($(this).eq(3).css("background-color")); 我得到“未定义” 当我这样做的时候 console.log($(this).next().next().css("background-color")); 它返回颜色 那么,我如何才能访问该行的第4个td 谢谢

我有一排有5个td的桌子

我正在单击行中的第二个td。我得到了它的背景色,并将其与同一行中其他td的背景色进行比较

我想和排在第四位的td进行比较。当我这么做的时候

    console.log($(this).eq(3).css("background-color"));
我得到“未定义”

当我这样做的时候

    console.log($(this).next().next().css("background-color"));
它返回颜色

那么,我如何才能访问该行的第4个td

谢谢

编辑:html如下所示

        <table id="table-fixtures" class="table table-condensed table-fixtures">
        <thead>
            <tr>
                <th colspan="5">UPCOMING</th>
            </tr>
        </thead>
        <tbody> 
            <tr>
                <td><small>07-01-2014</small></td>
                <td class="team">Alice</td>
                <td><strong>v</strong></td>
                <td class="team">Bob</td>
                <td><small>12:00</small></td>
            </tr>
            <tr>        
                <td><small>07-01-2014</small></td>
                <td class="team">Eve</td>
                <td><strong>v</strong></td>
                <td class"team">George</td>
                <td><small>12:00</small></td>
            </tr>
        </tbody>
    </table>

实际上,
仅引用一个元素(单击的元素),因此eq不会提取任何内容,因为它是:

给定一个表示一组DOM元素的jQuery对象,.eq() 方法从其中的一个元素构造一个新的jQuery对象 设置提供的索引标识此元素在中的位置 设定

由于要获取元素或其同级元素之一,可以使用和添加上一个元素,并在其上使用
eq

代码:


演示:

尽管我不使用jQuery,但您可以尝试使用它,更多细节请参见本文

var rows=document.querySelectorAll('table fixtures tbody tr');
for(变量i=0,长度=rows.length;i
在您的代码中
$(this)
表示您的一个td元素,它只是一个元素。因此$(this)。等式(3)返回未定义。因为没有此类元素。请参阅

相反,您可以使用:

console.log($("td.team").eq(3).css("background-color"))

是否有原因使您无法将
id
分配给该行,以便您可以直接访问该行?我正在动态构建表,行数将发生变化。如果我给一行或td分配了一个id,那么每一行上的id是否都是相同的,因此没有特定于该“单元格”的id?您也可以添加一个动态id!好的,那很有趣。但是有没有一种方法可以使用.eq()来实现呢?是的,使用
on(“单击,…)
eq(3)
console.log($(this).siblings().addBack().eq(3).css("background-color"));
var rows = document.querySelectorAll('#table-fixtures tbody tr');

for (var i = 0, length = rows.length; i < length; i++) {
    var col = rows[i].querySelector('td:nth-of-type(4)');
    alert(window.getComputedStyle(col).backgroundColor);
}
console.log($("td.team").eq(3).css("background-color"))