2013-08-17 3 views
0

기존 태그가 있는지 확인하기 전에 기존 태그를 확인하는 것이 합리적입니까? 아니면 jQuery가 바로 수행하고 있습니까? 여기jQuery check before delete 태그

에 SampleCode

$('#my_ul li.active').removeClass('active'); 

또는 ...

if( $('#my_ul li.active').length) { 
    $('#my_ul li.active').removeClass('active'); 
} 
+0

(A)의 내부를 이해하는 데 도움이 오류. –

+0

가능한 중복 [요소를 제거하기 전에 요소의 존재를 확인하는 것이 더 낫습니까?] (http://stackoverflow.com/questions/11897633/is-it-better-to-check-existence-of-an-element- 삭제 전) –

답변

1

jQuery는 선택 항목에서 반환 된 모든 요소에 대해 루프를 수행합니다. 따라서 배열에 요소가 없으면 루프가 0 번 발생합니다.

HTML

<ul> 
    <li>Hello World</li> 
</ul> 

자바 스크립트는이 예제를 가지고

var $('li'); 
당신이 그것을 로그 콘솔 경우는 다음과 같이됩니다 요소의 배열을 반환합니다

; 그것은 한번 수행 할 jQuery를 통해 루프 때 상기 보낸

[<li>Hello world</li>] 

배열이다. 섹션 반환 항목을 제로 경우 그러나 루프가 발생하지 않습니다이

$('div').removeClass(".myClass"); 

기본적으로 removeClass 플러그인

제 (그것의 단지 플러그인이 핵심 jQuery 코드의 일부를 먹으 렴 그런데 플러그인입니다) 플러그인은 이런 식으로 할 것입니다;

$.each($('div), function() { 
    //some code to remove the class 
}) 

희망이 당신이 당신이 얻을 경우 일치하는 요소가 없다 페이지에 코드의 첫 번째 라인을 실행하고 볼 것 알아 아주 간단한 방법으로 jQuery를

3

을 없음이 이해하지 않습니다. 더 빠르지도 유용하지도 않습니다. 하지 마.

단순히

$('#my_ul li').removeClass('active'); 

을하고있다 이러한 요소입니다, 그리고 li 요소가 active 클래스가없는 경우에도 경우에도 오류가되지 않습니다.

+0

1 초 빠름! +1 – Sergio