在jQuery中,如果jQuery选择器返回多个DOM元素,有没有一种方法可以抛出/返回任何元素?我知道你可以通过简单的检查来包装每个电话,但我想使用现有的方法(如果有的话)。
答案 0 :(得分:4)
没有内置方法,但添加一个方法并不困难:
(function($) {
$.fn.oneOnly = function() {
if (this.length === 1) {
return this;
} else {
return $(); // or throw / $.error()
}
};
})(jQuery);
如果匹配多个元素,则将其置于链中以使链无效:
$(sel).oneOnly().doSomething();
答案 1 :(得分:1)
如果在没有使用length的情况下返回多个元素来检查它,则无法抛出异常。另一个方法是使用$("selector").first()
仅使用第一个元素。