[jquery] jQuery-다중 : 선택자가 아님

‘#’로 시작하지 않고 인라인 자바 스크립트를 포함하지 않는 페이지 전체 링크를 타겟팅하려고하지만 선택기를 올바르게 구성하는 방법을 파악하는 데 문제가 있습니다.

여러 선택자에 대해 검색 한 내용을 기반으로하면 작동해야합니다. 두 선택자는 함께 작동하지 않고 독립적으로 작동합니다!

$('a:not([href*=javascript]), a:not([href^=#])')
.each(function(){...



답변

사용해보십시오

$('a:not([href*=javascript]):not([href^=#])') ...


답변

시도해 볼 수도 있습니다.

$('a').not('[href^=#],[href*=javascript]')


답변

jQuery에 표시된대로 -: not ()의 다중 선택자? , 이것이 올바른 방법입니다.

$( 'a:not([href*=javascript],[href^=#])' )

이미 변수에 부정 할 선택자가있는 경우 쉼표를 따옴표로 묶는 것을 잊지 마십시오.

var selOne = '[href*=javascript]';
var selTwo = '[href^=#]';
$('a:not(' + selOne + ',' + selTwo + ')')

코드가 약간 혼란 스럽지만 이점이 있다는 것을 인정합니다. 다음과 같은 작업을 수행 할 수 있습니다.

var selOne = '[href*=javascript], [href^=#]';
var selTwo = '.anotherSelector, .andAnother, .andSoOn';
$('a:not(' + selOne + ',' + selTwo + ')')

어떤 이유로 선택자를 그룹화해야 할 때 유용합니다. 코드의 다른 곳에서 동일한 선택기 그룹을 사용합니다.


동일한 기술을 사용한 실제 예

$('div:not(.rose-flower,.bus-vehicle)').css('color','red');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="bus-vehicle">I am a bus</div>
<div class="strawberry-fruit">I am a strawberry</div>
<div class="rose-flower">I am a rose</div>

또한 http://jsfiddle.net/bmL8gz5j/


:notvs .not(): 성능상의 이유로 :not보다 를 사용해야합니다 . “: not”및 “.not ()”선택기 사용 간의 성능 차이를.not() 참조하십시오 .


답변