2013-07-26 1 views
0

알고 싶습니다. 특정 선택 자에 대해 개체를 찾을 수없는 경우 jQuery에서 오류를 throw하지 않는 이유가 무엇입니까? 예를 들어왜 개체가 없을 때 jQuery가 오류를 throw하지 않는 이유

:.

$ ("# 내용") CSS ("색상", "빨간색");

여기에 id가 "content"인 요소는 없지만 오류는 발생하지 않습니다.

+0

정의를 확인 length 속성을 사용할 수 있습니다 : – krishgopinath

+0

은 '이 외설 결과가 없으므로 오류가 발생하지 않습니다. –

+0

선택기와 일치하는 요소가없는 것은 오류가 아닙니다 –

답변

6

0이 요소 인 설계된 반환 값 요소 컬렉션에 대한 jQuery 선택기입니다. 당신이 요소

if($('yourselector').length) 
{ 
    //You got one or more elements 
} 
else 
{ 
    //You haven't got any element. 
} 
+0

실제로 이것이 의미하는 바입니다! –

+0

그냥 추가하면 선택기는 항상 jQuery 객체를 반환하므로 일치하는 요소가 없더라도 null/undefined/empty가 아닙니다. @ Adil의 방법을 사용하는 것이 요소가 발견되었는지를 확인하는 유일한 방법입니다. –

+0

@RoryMcCrossan이 유일한 방법은 아니지만 최선입니다. –

0

을 가지고있는 경우가 그렇습니다 나는 그들이 멋진 거 알아

jQuery.fn.extend({ 
     notEmpty: function (atLeast) { 
      const len = atLeast || 1; 
      if (this.length < len) 
       throw `unable to find ${len} element with selector : 
       '${this.selector}'. ${this.length} element is found.`; 
      return this; 
     } 
    }); 

사용

let el = $(".at_least_one_element_selector").notEmpty();  
let el = $(".at_least_5_element_selector").notEmpty(5); 
관련 문제