programing

jQuery에서 사용하는 방법 :not and hasClass()에서 클래스 없이 특정 요소를 가져오는 방법

muds 2023. 10. 8. 10:26
반응형

jQuery에서 사용하는 방법 :not and hasClass()에서 클래스 없이 특정 요소를 가져오는 방법

코드 라인은 다음과 같습니다.

$('#sitesAccordion .groupOfSites').click(function() {
    var lastOpenSite = $(this).siblings().hasClass(':not(.closedTab)');
    console.log(lastOpenSite);
});

저는 다른 요소 중 하나를 얻는 대신에 "거짓"을 얻습니다. (그것도 있고 반드시 있어야 한다는 가정하에).문제는 다음과 같습니다.

.hasClass(':not(.closedTab)');

무엇이 문제입니까?

저의 목적은 (jQuery UI를 사용하지 않고) 저만의 아코디언을 만드는 것입니다.

저는 이렇게 쓰려고 노력하고 있습니다.

$('#sitesAccordion .groupOfSites').click(function() {

    //Get the last opened tab
    var lastOpenSite = $(this).siblings().hasClass(':not(.closedTab)');

    //Close last opened tab and add class
    lastOpenSite.hide().toggleClass('closedTab');

    //Open the current Tab
    $(this).children('.accordionContent').toggle('fast');

    // remove class from open tab
    $(this).toggleClass('closedTab');


});

이게 최선의 방법인가요? 고마워요, 알론

대신 함수를 사용합니다.

var lastOpenSite = $(this).siblings().not('.closedTab');

hasClass단지 어떤 요소가 클래스를 가졌는지를 테스트할 뿐입니다.not선택한 집합에서 제공된 셀렉터와 일치하는 요소를 제거합니다.

이렇게 하면 훨씬 쉬워집니다.

if(!$('#foo').hasClass('bar')) { 
  ...
}

기준 앞에 있는 !는 거짓을 의미하며 대부분의 프로그래밍 언어에서 작동합니다.

jQuery'shasClass()method는 요소가 아닌 부울(true/false)을 반환합니다.또한 여기에 부여할 매개변수는 클래스 이름이며 이러한 셀렉터가 아닙니다.

다음의 경우:x.hasClass('error');

jQuery - is(selector) 메서드를 사용할 수도 있습니다.

var lastOpenSite = $(this).siblings().is(':not(.closedTab)');

원래 게시 당시에 이것이 사실이었는지는 모르겠지만, 남매 방식은 선택자를 허용하기 때문에 나열된 OP의 축소가 작동해야 합니다.

 $(this).siblings(':not(.closedTab)');

언급URL : https://stackoverflow.com/questions/8743026/how-to-use-in-jquery-not-and-hasclass-to-get-a-specific-element-without-a-cla

반응형