2013-12-11 4 views
0

빈 셀렉터를 기본값으로 설정하여 사용자 정의 jQuery 함수를 호출 할 수있는 방법이 있긴하지만 그 함수가 유효한지 확인할 수는 있습니다.빈 Jquery 선택기가 있습니까?

내가 함수 호출을하기 전에 셀렉터가 유효한지 확인할 수 있지만 함수에서 한 번만 처리하면 코드가 더 깨끗해 보이고 추가로 체크하는 것을 기억할 필요가 없다는 것을 알 수있다. 함수 호출.

$.fn.Foo = function() { ... }); 

var $selector = someVariable != null ? $('# + someVariable') : emptySelector??? 

내가 할 수있는이 방법 ... 나는 다음과 같은 있다고 가정 해

$selector.Foo(); 

그리고이 유효하다면 내 기능에 난 그냥 확인할 수 있습니다 ...

$.fn.Foo = function() { 

    if ($(this) is a valid selector) 
     // execute the code 

}); 

저는 jQuery에 익숙하지 않으므로 잘못된 길을 생각하고있을 수 있습니다. 그들은 내가 잘못된 개체에 함수를 호출 할 수 없다는 오류가 발생하지 않도록이 일을 어떤 식으로합니까?

감사합니다.

답변

1

$()은 요소가없는 빈 jQuery 객체를 반환합니다.

함수가 each()과 같은 다른 jQuery 메서드 만 호출하는 경우에는 특별한 처리가 필요하지 않습니다. 요소가 없으면 해당 메소드는 아무 것도하지 않습니다.

다른 논리가있는 경우 this.length을 확인하십시오.

+0

감사합니다. 나는 이것을 정확히 찾고 있었다. 내 Google 검색이 끝났을 것입니다. – Smith

0

jQuery가 반환하는 길이를 확인할 수 있습니다.

var $mightExist= $('.might-exist'); 
if ($mightExist.length > 0) { 
    // It exists! 
} 
+0

맞아,하지만 존재 여부에 관계없이 함수 호출을 그대로 두길 바랬다. 내 응용 프로그램의 상태에 따라 선택기를 가져 오는 데 사용되는 변수에 값이 없을 수도 있습니다. – Smith

관련 문제