2011-04-01 2 views
3
var sd = jQuery(".bla"); 
if (sd.length>0){ 

} 

코드를 작성하는 데 더 시원한 방법이 있습니까? bla이라는 클래스가있는 경우에만 코드가 실행되기를 원합니다. 나는 각각을 사용할 수 있다는 것을 알고 있지만, 나는 원하지 않는다. 나는 sd.action()과 같은 것을 할 수 있다는 것을 알고 있지만, 나는 원하지 않는다.jQuery 및 .length> 0

+3

당신은 제거 할 수 보이게하기 위해 (SO 나 그냥 아니오 질문에 대답 할 수 wouldnt한다)은'> 0 '부분. – pimvdb

+2

. 길이는 매우 시원합니다. 단순함의 아름다움 :) – DannyLane

+2

'jQuery' 대신'$'가 더 시원합니다. –

답변

5

나는이 얼마나 '쿨러'확실하지 않다, 그러나 다만 :

if ($('.bla').length) { 
    // Do stuff 
} 

트릭을 할 것입니다.

편집는 :

var sd = $(".bla"); 

if (sd.length) { 
    // Do stuff 
} 
+1

내가 느린 것보다 쿼리가 반환 한 객체로 나중에 무엇인가하고 싶다면. – IAdapter

1

(제 생각에) 그 보이게하는 "멋진"방법은

if ($('.bla').length > 0) { 
    // ... 
} 
+1

내가 느린 것보다 쿼리에 의해 반환 된 개체를 가지고 나중에 뭔가를하고 싶다면. – IAdapter

1

당신은 크기는()

$를 사용할 수있다 (". ㅋ"). 크기()> 0

http://api.jquery.com/size/

+3

그 페이지에서 따옴표 : * ".length 속성이 더 좋습니다"* –

2

솔직히, 이것은 당신이 원하는 것을 할 수있는 완벽하게 수용하고 빠른 방법 (어떤 함수 호출)입니다. 나는 항상 비슷한 일을한다. 심지어 $().each을 사용하더라도 실제로는 을 수행하지 않아도 함수 호출이 필요하기 때문에 다소 느립니다.을 수행합니다.

다른 답변에 대해서는 올바른 내용입니다. $('.bla')을 두 번 이상 수행하면 속도가 느려집니다. 나중에 $('.bla')을 사용할 수 있다고 생각되면 코드에있는 것처럼 변수에 저장하는 것이 좋습니다. 이렇게하면 다른 jQuery 호출을 피하고 브라우저에서 가비지 수집을 처리 할 수 ​​있습니다.

희망적이라고 생각하세요! :)

+0

이것은 사실입니다. 스크립트의 다른 부분에서 선택기를 다시 사용하려는 경우 변수에 할당하는 것이 훨씬 더 효과적입니다. –

1

아니 : 당신은 확인 후 선택을 다시 사용해야하는 경우, 당신은 여전히 ​​같은 구문을 사용할 수 있습니다.

나는 더 차가운 것이 없다고 생각합니다.

2

코드 당신이 .. 길이 등을 사용하지 않으려면 조금 "쿨러"

jQuery.fn.extend({ 
    exists: function() { 
     return this.length !== 0; 
    } 
}); 

if (jQuery(".bla").exists()) { 
    console.log('found'); 
} 
+0

'> 0'을 쓰지 않는 이유는 2 바이트를 절약하기 위해서입니다. – pimvdb