找到特定的td背景颜色

时间:2014-01-07 20:00:22

标签: jquery html css

我有一个5 td的表行。

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

我想与行中的第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>

编辑:

jquery函数:

    $('td.team').click( function() {

         if ($(this).css("background-color") == clickColor) {
             console.log($(this).eq(3).css("background-color"));
             console.log($(this).next().next().css("background-color"));
         }
    });

3 个答案:

答案 0 :(得分:1)

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

  

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

因为您想要获取元素或其中一个兄弟姐妹,您可以使用siblings并使用addBack添加上一个元素,然后使用eq

代码:

console.log($(this).siblings().addBack().eq(3).css("background-color"));

演示:http://jsfiddle.net/IrvinDominin/Yr8an/

答案 1 :(得分:0)

你可以试试这个,虽然我不使用jQuery,但在JSFiddle中有更多细节。

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);
}

答案 2 :(得分:0)

在您的代码$(this)中代表一个 td元素,它只是 ONE element.so $(this).eq(3)< / strong>返回undefined。因为没有这样的元素。见documentation

相反,您可以使用:

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