似乎有些jQuery函数会返回一个元素,而另一些函数会返回一组元素。
例如:
$('.class1').parents(".class2").next().next().find(".class3").show(500);
$('.class1'), parents(".class2"), find(".class3")
将返回一个集合。而next()
将返回单个元素。
很难确定哪个返回单个元素,哪个返回一个集合。有时,它的名称会暗示,例如parents()
将返回一个集合,但parent()
将返回单个元素,除非在集合上调用它。但有时,名称也有歧义,例如find()。似乎需要仔细阅读文档来识别这一点,这是没有突出显示的"返回结果:"在jQuery的帮助文档(如https://api.jquery.com/next/和https://api.jquery.com/parent/)中,唯一的线索是类似于"获取父"的描述。获取紧跟在兄弟之后的’表示单个元素,’Get后代s
所以,我的问题是,是否有一种简单的方法可以轻松地识别jQuery函数是返回单个值还是返回集合?
我认为简短而简单的答案是不。
没有直观的方法来判断一个jQuery选择器将返回一个单一的元素还是一个集合,正如你在你的帖子中提到的…
这完全取决于DOM的构造。
例如,在表达式
$('.class1').parents(".class2").next().next().find(".class3").show(500);
如果碰巧只有一个元素的类名= "class3"在$('.class1').parents(".class2").next().next()
的父节点下
要强制这个相同的表达式只返回第一个,必须在选择器上指定更多的限制:
$('.class1').parents(".class2").next().next().find(".class3:nth-child(1)").show(500);