[javascript] “모두 제외”jQuery 선택기

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

$('div')

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

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



답변

단순한:

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

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

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

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

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


답변

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)

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


답변

$("div:not(#myid)")

[문서]

또는

$("div").not("#myid")

[문서]

하나를 제외한 모든 ID를 선택하는 주요 방법입니다.

여기에서 데모 를 볼 수 있습니다.


답변

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

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


답변

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

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


답변

그렇게해야합니다.

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


답변

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

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

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