Как выбрать TR, но не тот, если его дочерний TD с селекторами JQuery?

0

Мне нужно применить некоторый css к некоторому TR и его детям, за исключением одного столбца и его дочерних элементов, которые имеют флажки

Ни одно из следующих не работало

 $('#myRow').not('input').css( "background-color", "#E0E0E0" ).bind('click', function(e){e.preventDefault();});

 $('#myRow').not('.myCellClass').css( "background-color", "#E0E0E0" ).bind('click', function(e){e.preventDefault();});

 $('#myRow:not(.myCellClass)').css( "background-color", "#E0E0E0" ).bind('click', function(e){e.preventDefault();});

 $('#myRow:not(input)').css( "background-color", "#E0E0E0" ).bind('click', function(e){e.preventDefault();});

3 ответа

1

Добавьте другой класс в td, который вы хотите связать с событием клика.

<table>
<tr>
<td class="clickable"></td>
<td class="nonclickable"></td>
<td class="clickable"></td>
</tr>
</table>

$('tr td.clickable').click(function(){ // do wathever you want. 
});
1

Делегирование событий - лучший вариант:

$('table#mayTable').on('click', 'tr', function (event) {
    if ($(event.target).find('input').length) {
        // this row has inputs
        return;
    }
    // row does not have inputs
    // do what ever you like
}   
0

В качестве примера вы можете использовать .end() как .end() ниже, для изменения CSS.

$(function() {
       $("table").find("tr").css("background","red")
       .end()
       .find(".b")
        .css("background","#fff") 
 });

Вышеприведенный пример в демонстрации http://jsbin.com/uvUTiGu/1/edit?html,css,output

Ещё вопросы

Сообщество Overcoder
Наверх
Меню