Jquery 查找特定的td背景色
我有一排有5个td的桌子 我正在单击行中的第二个td。我得到了它的背景色,并将其与同一行中其他td的背景色进行比较 我想和排在第四位的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 谢谢
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"))