如果 jQuery 选择器返回多个 DOM 元素,在 jQuery 中是否有一种方法可以不抛出/返回任何元素?我知道您可以通过简单的检查来包装每个调用,但如果有的话,我想使用现有的方法。
问问题
850 次
2 回答
4
没有内置方法,但添加一个并不难:
(function($) {
$.fn.oneOnly = function() {
if (this.length === 1) {
return this;
} else {
return $(); // or throw / $.error()
}
};
})(jQuery);
如果多个元素匹配,则将其放入链中以使链无效:
$(sel).oneOnly().doSomething();
于 2012-10-20T21:46:23.067 回答
1
如果返回多个元素而没有使用长度来检查它,则无法抛出异常。另一种方法是$("selector").first()
只使用第一个元素。
于 2012-10-20T21:55:18.577 回答