JQuery найти тот же тд в пред.и следующий ряд - PullRequest
8 голосов
/ 15 марта 2012

У меня есть таблица, и я знаю, как искать следующий и предыдущий 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 ]

10 голосов
/ 17 марта 2012

Я провел небольшое исследование и нашел работающее решение, которое работает.Спасибо всем за помощь:

$(this).parent().next().find('td').eq($(this).index()-1).css('backgroundColor');
4 голосов
/ 15 марта 2012

Используйте метод 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 + "))");

    });
});
3 голосов
/ 15 марта 2012

Что-то вроде $(this).closest('tr').next('tr').find('td') даст вам все <td> в строке после того, который содержит <td> вашего события.

2 голосов
/ 15 марта 2012

Попробуйте с родителем;) http://api.jquery.com/parent/

2 голосов
/ 15 марта 2012
$(this).parent('tr').next()

и

$(this).parent('tr').prev()
2 голосов
/ 15 марта 2012

проверить .parent() в jquery ..

...