JQuery获取数组的第n个元素

20
$('#button').click(function() {
   alert($('.column').val());
});

我该如何获取.column中的第一个、第二个或第三个元素?


你是想要第一个、第二个或者第三个意思中的任何一个?还是全部都要?而且你是指具有 .column 类的三个元素,还是在父级 .column 元素内的三个元素? - Sampson
4个回答

35
$('#button').click(function() {
    alert($('.column').eq(0).val()); // first element
    alert($('.column').eq(1).val()); // second
    alert($('.column').eq(2).val()); // third
});

仅作为文档说明:“将匹配元素集合减少到指定索引处的一个元素。” jQuery.eq() - Jeppe

6

我喜欢选择器字符串,所以我通常这样做:

$('.column:eq(3)') // Fourth .column element

2
我纯粹是因为风格喜欢它们,但需要注意的是,jQuery文档建议在现代浏览器上使用.eq()而不是:eq()以获得更好的性能:http://api.jquery.com/eq-selector/ - Jeff

3

切片可以做到,但是那个函数更适合选择一系列索引。肯定有一个更适合选择单个索引的函数吧? - Norse
你的意思是像nth-child或eq()这样吗?你说你想要前3个,也许我误解了,但那似乎是索引范围的定义? - Jeff

2
你可以使用:lt(小于)选择器,并告诉它你想要0、1和2,通过指定所有索引3以下的.column元素:
$("#button").on("click", function(){
  $(".column:lt(3)").each(function(){
    alert( this.value );
  });
});

演示:http://jsbin.com/icevih/edit#javascript,html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接