1

jQueryでは、jQueryセレクターが複数のDOM要素を返す場合に要素をスロー/返さない方法はありますか?簡単なチェックですべての呼び出しをラップできることは知っていますが、既存のメソッドがある場合はそれを使用したいと思います。

4

2 に答える 2

4

組み込みのメソッドはありませんが、追加するのは難しくありません。

(function($) {
    $.fn.oneOnly = function() {
        if (this.length === 1) {
            return this;
        } else {
            return $();  // or throw / $.error()
        }
    };
 })(jQuery);

複数の要素が一致した場合は、チェーンに入れてチェーンを無効にします。

 $(sel).oneOnly().doSomething();

http://jsfiddle.net/alnitak/sevTY/を参照してください

于 2012-10-20T21:46:23.067 に答える
1

チェックに長さを使用せずに複数の要素が返された場合、例外をスローする方法はありません。もう1つのアプローチは$("selector").first()、最初の要素のみを操作するために使用することです。

于 2012-10-20T21:55:18.577 に答える