3

たとえば、このコードを使用する場合:$('#iddoesnotexist').remove();この ID がページにない場合、エラーは表示されません。エラーを表示するにはどうすればよいですか?

そうしないとjQueryが定期的に例外をスローするため、デフォルトでこの動作が選択されましたNullReferenceが、これが私が探しているものです...

4

3 に答える 3

7

独自の jQuery 拡張機能を作成できると思います。私はそれをアサーションとして書きます*:

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

    return this;
};

そして開発中:

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

* 実際、私は jQuery を使用しません。document.getElementByIdこんなことからも守ってくれます;)

于 2012-07-05T00:35:20.163 に答える
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または$識別子を上書きするのではなく、必ず独自の参照を使用してください。

于 2012-07-05T00:44:16.153 に答える
0

見る:

jQuery デバッグhttp://jqueryfordesigners.com/debugging-tools/http://www.jquery4u.com/utilities/live-jquery-debugging-firebug/http://samdutton.wordpress.com/2010/09 /16/jquery-debugging-tips/ および http://trainofthoughts.org/blog/2007/03/16/jquery-plugin-debug/

jQuery のデバッグに関する記事。また、コメントで述べたように、デバッグする最も簡単な方法は を使用することconsole.logです。

于 2012-07-05T00:35:22.877 に答える