我发现自己开始写这个:
$($("a-selector-which-returns-multiple-objects")[index]).SomejQueryFunctionForExampleShow()
因为我有一个返回多个对象的查询,所以[index]
运算符返回DOM对象,而不是jQuery对象,因此我将其转换回外部$()
的jQuery对象。 / p>
这很好用,但看起来不够优雅,而且我觉得我错过了关于索引到jQuery对象集的一些东西 - 这样做的正确方法是什么?
答案 0 :(得分:10)
在您描述的情况下,您根本不必索引元素。由于JQuery链接其命令的方式,任何命令都将在 all 上运行上一个选择器返回的元素。
以下示例将隐藏所有<a>
元素:
$(document).ready(function() {
$("a").hide();
});
如果需要是特定元素,您应该为其选择一个唯一ID:
$(document).ready(function() {
$("#my-unique-id").hide();
});
如果要将特定索引作为JQuery对象返回,则应使用eq function。
$(document).ready(function() {
$("a").eq(0).hide();
});
但是,在你的情况下,你根本不需要索引。
答案 1 :(得分:2)
JQuery为此目的提供Traversing/eq和Traversing/slice等功能,以及其他类似Traversing/filter的功能,用于更复杂的情况。
$("selector").eq(0).show();
答案 2 :(得分:0)
如果你想在某些对象上执行SomejQueryFunctionForExampleShow(),为什么索引只是这样做:
$("a-selector-which-returns-multiple-objects").SomejQueryFunctionForExampleShow().
答案 3 :(得分:0)
您可以使用filter command过滤原始包装集,然后在子集上执行命令(然后返回到包含end command的原始包装集。)