jQuery在prev中找到相同的td。和下一行

时间:2012-03-15 18:43:33

标签: jquery css click

我有一张桌子,我知道如何搜索下一个和上一个TD,但是如何在下一个和之前的TR上进行搜索?

012
345 <- example, I clicked on 4, it checks 3 and 5, but how to check on 0,1,2 and 6,7,8?
678
$(document).ready(function() {
    $("td").click(function() {

        var x = $(this).next().css('backgroundColor');
        var y = $(this).prev().css('backgroundColor');

        if (x == 'rgb(255, 0, 0)' || y == 'rgb(255, 0, 0)') {
            return;
        } else {
            $(this).css('backgroundColor', 'red');
        }
    });
});

6 个答案:

答案 0 :(得分:10)

我做了一些研究,并提出了一个有效的工作解决方案。谢谢大家的帮助:

$(this).parent().next().find('td').eq($(this).index()-1).css('backgroundColor');

答案 1 :(得分:4)

使用parent()上的td方法转到tr,然后您可以相应地使用prev()next()

$(document).ready(function() {
    $("td").click(function() {

        var $tr = $(this).parent();//this will give the tr
        $tr.prev();//previous tr 
        $tr.next();//next tr 

        //To get the corresponding td's in the next and prev rows
        var tdIndex = $(this).index();

        $tr.prev().find("td:not(:eq(" + tdIndex + "))");
        $tr.next().find("td:not(:eq(" + tdIndex + "))");

    });
});

答案 2 :(得分:3)

类似$(this).closest('tr').next('tr').find('td')之类的内容会在您的事件发生<td>之后的所有<td>内获取。

答案 3 :(得分:2)

在jquery中查看.parent() ..

答案 4 :(得分:2)

$(this).parent('tr').next()

$(this).parent('tr').prev()

答案 5 :(得分:2)

尝试使用父级;)http://api.jquery.com/parent/