반응형
클래스없이 특정 요소를 얻기 위해 jQuery : not 및 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');
});
이것이 최선의 방법입니까? 고마워, 알론
not
대신 함수를 사용하십시오 .
var lastOpenSite = $(this).siblings().not('.closedTab');
hasClass
요소에 클래스가 있는지 여부 만 테스트 not
하고 제공된 선택기와 일치하는 선택된 집합에서 요소를 제거합니다.
다음과 같이하는 것이 훨씬 쉽습니다.
if(!$('#foo').hasClass('bar')) {
...
}
! 기준 앞에는 거짓을 의미하며 대부분의 프로그래밍 언어에서 작동합니다.
jQuery의 hasClass()
메서드는 요소가 아닌 부울 (true / false)을 반환합니다. 또한 여기에 제공되는 매개 변수는 선택자가 아닌 클래스 이름입니다.
예 : x.hasClass('error');
jQuery-is (selector) Method를 사용할 수도 있습니다 .
var lastOpenSite = $(this).siblings().is(':not(.closedTab)');
원래 게시 당시에 이것이 사실인지 모르겠지만 형제 메서드는 선택자를 허용하므로 나열된 OP가 작동해야하는 것을 줄입니다.
$(this).siblings(':not(.closedTab)');
반응형
'Program Tip' 카테고리의 다른 글
Rails의 link_to 본문에 포함 된 HTML (0) | 2020.11.09 |
---|---|
내 C ++ 코드에서 printf를 사용해야합니까? (0) | 2020.11.09 |
jQuery Keypress 화살표 키 (0) | 2020.11.09 |
Devise로 사용자를 "소프트 삭제"하는 방법 (0) | 2020.11.09 |
Highcharts 세로 막 대형 차트 내에서 각 범주의 색상을 어떻게 변경합니까? (0) | 2020.11.09 |