0

这是一个简单的代码:

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

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

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

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

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

进而

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

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

4

4 回答 4

6

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

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

:eq()选择器:

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

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

于 2012-11-15T12:36:07.630 回答
2

这会起作用

$('#myDiv a:first').hide();
于 2012-11-15T12:37:23.913 回答
1
var elements = $('#myDiv').find('a');
elements.filter(':first').css("display","none");

或者

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

或更好

$('#myDiv a:first:visible').hide();
于 2012-11-15T12:36:52.277 回答
1

如果$(elements[0])让你感到奇怪,你可以使用:

elements.eq(0)

但是请注意,在性能方面$(elements[0])优于几乎任何其他方法,.eq排在第二位(不包括像这样的东西$(elements.get(0)),这很可能会让你感到奇怪)。

我不建议使用:firstor :eq,因为它们是迄今为止最慢的。

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

于 2012-11-15T12:37:58.230 回答