2011-11-13 2 views
0

내 웹 사이트의 모든 앵커에 .hover()를 추가하고 싶습니다. ].jQuery 이미 효과가있는 것을 제외하고 모든 앵커에 .hover()를 추가하십시오.

jQuery에서 가능하거나 가능하면 어떻게해야할지 모르겠다.
그럴 수 없다면 또 다른 아이디어가 있지만 다시 할 수있는 방법이나 가능한지 모르겠습니다.

생각은 이렇습니다 : id가 "test"이고 부모 div의 ID가 "test2"인 부모 앵커 이외의 모든 앵커에 .hover() 효과를 추가 할 수 있습니까?

감사합니다.

답변

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

당신은

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

그 요소에없는 모든 <a>의를 선택하려면 쓸 수 있습니다.

+0

잡히지 않은 구문 오류, 인식 할 수없는 표현 : (#test, # test2). –

+0

@Interstellar_Coder : 수정되었습니다. – SLaks

+0

나는 당신의 대답을 받아 들일만한 것으로 설정 하겠지만, interstellar_coder는 두 가지 방법을 사용했고 당신과 비슷한 방식으로 적은 문자를 사용하므로 더 빠릅니다. – Ron

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.

관련 문제