jQuery добавить .hover () для каждого якоря, кроме тех, которые уже имеют эффект - PullRequest
0 голосов
/ 13 ноября 2011

Я хочу добавить .hover () ко всем якорям на моем веб-сайте, кроме тех, которые уже имеют .hover () [ранее отдельно добавили .hover ()]. ​​

Я понятия не имею, как это сделатьэто в JQuery или, если это возможно.Если это невозможно, у меня есть другая идея, но опять же, я не знаю, как это сделать или возможно ли это.

Идея такова: могу ли я добавить эффект .hover () к каждому якорю, кроме тех, которыев родительском div с идентификатором «test», а те в родительском div с идентификатором «test2»?

Спасибо!.

Ответы [ 3 ]

2 голосов
/ 13 ноября 2011

Есть много способов сделать это, некоторые из которых есть.

Первый

$('a').not('#test a, #test2 a'); 

Второй

var divs_to_test = $('#test').add('#test2');
$('a').filter(function(){ 
    return !$(this).parent().is(divs_to_test); 
}); 
1 голос
/ 13 ноября 2011

Вы можете написать

$('a').not($('#test a, #test2 a'))

Чтобы выбрать все <a> s, которые не входят в эти элементы.

0 голосов
/ 13 ноября 2011

Самый простой способ, который я нашел для этого, это несколько менее краткий текст:

$('a').filter(
    function() {
        if (!$(this).closest('div[id^="test"]').length) {
            return this;
        }
    }).hover(
    function(){
        $(this).css('background-color','red');
    },
    function(){
        $(this).css('background-color','white');
    });

JS Fiddle demo .

...