특정 앵커 태그에 대해 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()
선택합니다.