2011-11-25 6 views
32

클래스가없는 경우에만 클래스 (class = "bbox")를 ul-list에 추가하고 싶습니다. 이것은 내가 지금까지 가지고있는 것이다. 클래스가 ul-tag에 존재하면 jquery로 어떻게 확인합니까?jquery를 통해 클래스를 추가하지만 존재하지 않는 경우에만

$("ul").addClass("bbox"); 
+10

이미 추가되었습니다. '.addClass'는'.hasClass' 체크를 내부적으로 수행합니다. 참조 : http://stackoverflow.com/questions/13358887 –

답변

34

특정 클래스가 존재하는 경우에는 확인하려면 다음

if(!$("ul").hasClass("class-name")){ 
    $("ul").addClass("bbox"); 
} 

모든 클래스가 존재하는지 검사 할 경우 간결

if ($('ul').attr('class') == '') { 
    $("ul").addClass("bbox"); 
} 
+0

#content에서 첫 번째 ul을 선택하려고했지만 모두 선택했습니다. 뭐가 잘못 되었 니? hasClass ("bbox") == false) { $ ("ul"). addClass ("bbox"); ($ ('# 콘텐츠 ul : nth-child (1) } – mark

+2

hasClass()는 이미 true 또는 false를 반환하므로 false인지 확인하는 것이 중복됩니다. 'if (! $ ('ul'). hasClass ('classname'))'충분하면 – Andy

+0

@Andy True이면 대답이 수정됩니다. –

3

:

// fine, because nothing happens if 
// there are no matching elements 
$("ul[class='']").addClass("bbox"); 
+0

멋지고 짧습니다! – lucapette

+0

클래스 abox가 있고 bbox를 추가하려고하면 작동하지 않습니다. Matt의 해결책은이 문제를 해결합니다. –

16

카림 79 거의 다 알았어!

내가 당신이

$("ul:not([class*='bbox'])").addClass("bbox"); 

당신은 절대 어떠한 클래스를 태그를 일치하지 정정하자, 및 UL은 다른 클래스가 있다면 매칭이 이루어되지 않습니다. 추가하려는 정확한 클래스를 검색해야합니다. .hasClass와 마찬가지로.

+2

내가 잘못 본 것이 아니라면, 속성 선택자 주위에 대괄호를 잊어 버렸습니다.또한, $ ("ul : not ([class ~ = 'bbox']))"). addClass ("bbox");는 더 좋다 (물결표). – Bart

11

내가이 잘 작동 할 궁금 도움이되기를 바랍니다 ->

$("ul").removeClass("bbox").addClass("bbox");

먼저 해당 항목이 있으면 제거하고 새 항목을 추가하십시오. 나는 모든 것을 입력하기에는 너무 게으므로, 나를 위해 최선을 다했다. if. 그냥 $('.selector').addClass("myClass");를 사용

$('.your-dom:not(.class-name)').addClass('class-name'); 
3

당신은 클래스를 추가하기 위해이 코드를 사용할 수 있습니다.

jQuery 클래스 추가/제거는 둘 다 내부적으로 중복을 검사합니다. 즉, addClass을 두 번 호출하면 클래스가 한 번만 추가됩니다.

8

존재하지 않을 경우에만

+0

jQuery 문서 : https://api.jquery.com/addclass/이 메서드는 클래스를 대체하지 않습니다. 요소를 이미 할당 한 클래스에 추가하여 클래스를 추가하기 만하면됩니다. – vanduc1102

0

나는 2 사이의 클래스를 전환하고있어 경우에 나는 그래서 버튼의 현재 설정을 확인하지 않아도이 방법을

if (foo) 
    $('button.btn-foo').removeClass('foo bar').addClass('foo'); 
if (bar) 
    $('button.btn-foo').removeClass('foo bar').addClass('bar'); 

를 사용하는 클래스가 있는지 확인 할 필요가 없습니다

관련 문제