在不使用选择器的情况下在DOM元素上调用jQuery方法

时间:2012-11-15 12:34:02

标签: jquery dom

这是一个简单的代码:

 var elements = $('#myDiv').find('a');

假设元素数组包含5个链接。现在我想隐藏数组中的零链接:

$(elements[0]).css("display","none");

我知道$(elements [0])是非法的。我可以说:

var selector="#"+elements[0].id

然后

$(selector).css("display","none");

但如果没有为其分配id,我该如何引用该元素呢?

4 个答案:

答案 0 :(得分:6)

最好在这里应用特殊选择器。要获取第一个元素,请使用:first选择器:

$("#myDiv").find("a:first").hide();

:eq()选择器:

$("#myDiv").find("a:eq(0)").hide();

其中:eq(0)选择索引为0的元素。

答案 1 :(得分:2)

这将起作用

$('#myDiv a:first').hide();

答案 2 :(得分:1)

var elements = $('#myDiv').find('a');
elements.filter(':first').css("display","none");

$('#myDiv').find('a:first').css("display","none");

或更好

$('#myDiv a:first:visible').hide();

答案 3 :(得分:1)

如果$(elements[0])怪异你,你可以使用:

elements.eq(0)

但请注意,明智的表现$(elements[0])优于任何其他方法,.eq排在第二位(不计算像$(elements.get(0))这样的东西,这很可能是奇怪的你出去了。)

我不建议使用:first:eq,因为它们是目前最慢的。

请参阅此基准:http://jsperf.com/jquery-first-vs-first2/6