2012-07-05 6 views
3

예 :이 코드를 사용하는 경우 $('#iddoesnotexist').remove();이 ID가 페이지에 없으면 오류 메시지가 표시되지 않습니다. 오류를 표시하는 방법은 무엇입니까? 그렇지 않으면 jQuery를 정기적으로 NullReference 예외를 슬로우 때문에jQuery에서 가장 쉬운 방법으로 디버깅하는 방법은 무엇입니까?

기본적으로이 문제가 선택되었다, 그러나 이것은 I가 ...

+3

디버깅을 위해 console.log를 사용합니다 :) – Ignas

+0

devotools에서 console.log를 사용하거나 중단 점을 설정하거나 firequery를 여러 옵션으로 사용할 수 있습니다. – elclanrs

+1

제목이 좋지 않다고 생각합니다. 내가 이해할 때 jQuery가 비어있는 일치에 대해 오류를 던지는 옵션을 찾지만 많은 사람들이 제목을보고 디버깅 도구를 권장합니다. – madth3

답변

8

당신은 당신의 자신의 jQuery 확장을 만들 수 있습니다 무엇을 찾고있다, 나는 가정한다.

$.fn.mustExist = function() { 
    if(!this.length) { 
     throw new Error("Collection was empty."); 
    } 

    return this; 
}; 

그리고 개발 과정 : I *이 주장으로 작성합니다

$('#iddoesnotexist').mustExist().remove(); 

* 사실, 내가 사용하지 않을 jQuery를; document.getElementById 또한 이런 종류의 일에서 당신을 보호 ;)

1

모든 DOM 선택에 대해이 동작을 기본값으로 사용하려면 jQuery 함수에 대한 래퍼 함수를 ​​만들면됩니다.

var my_$ = function(selector) { 
    var result = jQuery.apply(this, arguments); 

    if (typeof selector === "string" && !result.length) 
     throw new Error("No matches found"); 

    return result;    
}; 

my_$("#foobar"); // No matches found 

하면 jQuery 또는 $ 식별자를 덮어 쓰는 대신 자신의 참조를 사용하십시오.

관련 문제