2013-10-10 3 views
0

У меня есть следующий код:JQuery выделить строку таблицы, но за исключением некоторых строк

$('table tr:not(:first-child)').mouseover(function() { 
    $(this).removeClass('hovered_error'); 
    $(this).addClass('hovered'); 
}).mouseout(function() { 
    $(this).removeClass('hovered'); 
}); 

Это прекрасно работает - однако, есть способ, которым я могу не выделить определенные строки таблицы, например, строки 11 и 21, или если строка таблицы имеет значение name или class?

EDIT: Правильный код следующим образом:

$('table tr:not(:first-child,[name=header])').mouseover(function() { 
    $(this).removeClass('hovered_error'); 
    $(this).addClass('hovered'); 
}).mouseout(function() { 
    $(this).removeClass('hovered'); 
}); 
+0

$ ('table tr: not (: eq (10) ,: eq (20))') ... потому что eq работает для индекса 0 –

+0

': not' может также применяться к классам:': not (.class) 'или': not ([name = somerandomnamelol]) ' – Spokey

+0

@Spokey - это было бы верный? '$ (' table tr: not (: first-child) ,: not ([name = header]) '). mouseover (function() {' –

ответ

1

Как уже упоминалось в комментарии вы можете добавить classes или атрибут фильтров :not

$('table tr:not(:first-child, [name=header], #id, .class)') 
1

Вы могли бы использовать что-то вдоль этих линий для определенных номеров строк;

$('table tr:not(:first-child)').mouseover(function() { 
    var hovered = $(this); 
    if (hovered.index() != 11 && hovered.index() != 21) { 
     hovered.removeClass('hovered_error'); 
     hovered.addClass('hovered'); 
    } 
}).mouseout(function() { 
    hovered.removeClass('hovered'); 
}); 

Проверьте на index() элемента. Вам может потребоваться настроить индекс +1 или 2, если вы хотите пропустить первую строку.

+0

Я бы сказал, у меня есть несколько строк таблицы, которые показывают и скрывают - и, несмотря на то, что выше это работает, похоже, что на него воздействует шоу-шпион. –

+0

Вы имеете в виду это, поскольку некоторые строки могут быть скрытым, вы хотите, чтобы видимые строки 11 или 21 не были затронуты, а не строки 11 или 21 таблицы, независимо от их видимости ... если это имело смысл? – Novocaine

1

Если вы хотите только добавить поведение Hover CSS в таблицу строк, то вы можете сделать это с помощью CSS только

table tr { 
     background-color: azure; 
    } 
    table tr:hover { 
     background-color: beige; 
    }