[jquery] 선택기에서 특정 클래스가있는 요소를 jQuery 제외

특정 앵커 태그에 대해 jQuery에서 클릭 이벤트 트리거를 설정하고 싶습니다.

특정 클래스가있는 링크는 무시하면서 새 탭에서 특정 링크를 열고 싶습니다 (요청하기 전에 CMS에서 가져올 때 잡으려는 링크에 클래스를 넣을 수는 없습니다).

"button"OR 클래스와의 링크를 제외하고 싶습니다"generic_link"

나는 시도했다 :

$(".content_box a[class!=button]").click(function (e) {
    e.preventDefault();
    window.open($(this).attr('href'));
});

그러나 그것은 효과가없는 것 같습니다. 또한 "generic_link"제외 에 포함시키기 위해 OR 문을 어떻게 수행 합니까?



답변

.not () 메소드를 사용할 수 있습니다 :

$(".content_box a").not(".button")

또는 : not () 선택기 를 사용할 수도 있습니다 .

$(".content_box a:not('.button')")

.not()더 읽기 쉽고 (특히 연쇄적일 때) :not()매우 느리게 빠르다는 점을 제외하고 는 두 접근 방식간에 차이가 거의 없습니다 . 차이점에 대한 자세한 내용은 이 스택 오버플로 답변 을 참조하십시오 .


답변

이것을 사용하십시오 ..

$(".content_box a:not('.button')")


답변

오늘 도움이 된 정보를 추가하기 위해 jQuery 객체 / this.not () 선택기 로 전달할 수도 있습니다 .

$(document).ready(function(){
    $(".navitem").click(function(){
        $(".navitem").removeClass("active");
        $(".navitem").not($(this)).addClass("active");
    });
});
.navitem
{
    width: 100px;
    background: red;
    color: white;
    display: inline-block;
    position: relative;
    text-align: center;
}
.navitem.active
{
    background:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="navitem">Home</div>
<div class="navitem">About</div>
<div class="navitem">Pricing</div>

위의 예는 간단하지만의 사용을 보여주고 싶었다 할 수 this에서 not()선택합니다.


답변