jQuery将.hover()添加到每个锚点,除了那些已经生效的锚点

时间:2011-11-13 17:22:48

标签: jquery jquery-hover

我想将.hover()添加到我网站中的每个锚点,除了已经有.hover()[之前单独添加.hover()的那些锚点。)

我不知道如何在jQuery中实现它或者它是否可能 如果它不可能,我有另一个想法但又一次,我不知道该怎么做或它是否可能。

这个想法是这样的:我可以将.hover()效果添加到每个锚点,除了那些在id为“test”的父div中,并且那些在id为“test2”的父div中?

谢谢!

3 个答案:

答案 0 :(得分:2)

许多方法可以做到这一点,其中一些是。

第一

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

第二

var divs_to_test = $('#test').add('#test2');
$('a').filter(function(){ 
    return !$(this).parent().is(divs_to_test); 
}); 

答案 1 :(得分:1)

你可以写

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

选择不在这些元素中的所有<a>

答案 2 :(得分:0)

我发现的最简单的方法是简洁:

$('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