如果选择器返回多个元素,则抛出JQuery

时间:2012-10-20 21:41:30

标签: jquery

在jQuery中,如果jQuery选择器返回多个DOM元素,有没有一种方法可以抛出/返回任何元素?我知道你可以通过简单的检查来包装每个电话,但我想使用现有的方法(如果有的话)。

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:1)

如果在没有使用length的情况下返回多个元素来检查它,则无法抛出异常。另一个方法是使用$("selector").first()仅使用第一个元素。