"모두 제외"jQuery 선택기


89

다음과 같이 HTML 마크 업의 모든 div를 선택 (jQuery 사용) 할 수 있습니다.

$('div')

그러나 나는 위의 선택에서 특정 div(가령 id="myid") 을 제외하고 싶습니다 .

Jquery 함수를 사용하여 어떻게 할 수 있습니까?


2
jquery에서 not 선택기를 사용하십시오
abhijit

답변:


171

단순한:

$('div').not('#myid');

를 사용 .not()하면에서 반환 한 집합에서 선택한 선택자와 일치하는 요소가 제거됩니다 $('div').

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

$('div:not(#myid)');

두 선택기 모두 동일한 작업을 수행하지만 jQuery의 선택기 엔진 인 Sizzle이이를 네이티브 호출 로 최적화 할 수 있기 때문에 :not()더 빠릅니다.querySelectorAll() .


1
@Raynos는 나는 반드시 생각하지 않습니다 나쁜 하지만, 사용 .not()하다 멀리, 보다 나은 :not().
Bojangles 2011 년

1
나는 그것이 $('div:not(#myid)');(따옴표없이) 있어야한다고 생각합니다 . @Raynos : 왜? :not()CSS3 선택기입니다. 에 jQuery를 직접 선택을 전달할 수 있습니다 querySelectorAll지원하는 경우 ...
펠릭스 클링에게

@FelixKling selectors4 의 일부로 괜찮습니다 . 그러나 jQuery에서는 속도가 느리고 .not가독성이 떨어 집니다 . 나는 ": not selector in jQuery"라고 말 했어야했다
Raynos

@Raynos : 어떤 선택기 사양도 :not(). 이 선택기는 선택기 4의 새로운 기능이 아니며 따옴표를 허용하도록 변경되지도 않았습니다. 그러나 더 복잡한 선택자를 허용하도록 변경되었습니다. 나는 당신의 코멘트 ... 오해하지 않는 한
BoltClock

1
@PeterKrauss 방금 가장 빠른 것으로 표시 되는 jsPerf 벤치 마크 querySelectorAll를 수행했습니다. 실제 벤치 마크는 아니지만 jQuery 내부의 오버 헤드가 없으므로 예상 할 수 있습니다. :not()빠른 사실이다, 지글 지글 알고 아마도 있기 때문에 사용을 최적화 할 수 있습니다querySelectorAll()
Bojangles

9
var els = toArray(document.getElementsByTagName("div"));
els.splice(els.indexOf(document.getElementById("someId"), 1);

구식 방식으로 할 수 있습니다. 너무 간단한 jQuery가 필요하지 않습니다.

전문가 팁 :

DOM 요소의 집합이 너무 좋아 사용, 단지 배열 toArrayA의 방법을 NodeList.

세트에 요소를 추가하는 것은

set.push.apply(set, arrOfElements);

세트에서 요소를 제거하는 것은

set.splice(set.indexOf(el), 1)

한 번에 여러 요소를 쉽게 제거 할 수 없습니다.


1
요즘 (2017) 아마도 네이티브 Javascript .querySelector()또는 .querySelectorAll()with를 사용하는 div:not(#myid) 것이 더 빠릅니다 ... 그렇습니까?
Peter Krauss


4
   var elements =  $('div').not('#myid');

여기에는 ID가 'myid'인 div를 제외한 모든 div가 포함됩니다.


3
$('div:not(#myid)');

이것이 당신이 필요하다고 생각하는 것입니다.



3

.notjQuery 라이브러리 의 속성을 사용합니다 .

$('div').not('#myDiv').css('background-color', '#000000');

여기 에서 실제로 확인 하십시오 . div #myDiv는 흰색입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.