确定哪个元素首先出现

时间:2012-07-31 17:32:12

标签: jquery

我有一个包含对象id的数组:

one
two
there
etc..

我有一个很长的对象列表:

<div id="container">
  <input type="text" id="one" />
  <input type="text" id="two" />
  <input type="text" id="three" />
</div>

这不是实际的html代码,只是一个简化版本。

现在我的数组ID不断变化,我的问题就是 我如何找出该数组中的哪个元素是#container div

中的第一个元素

例如,如果我有此订单:

{
  email 
  name
  date
}

这个html对象列表

<div id="container">
  <input type="text" id="name" />
  <input type="text" id="last_name" />
  <input type="text" id="email" />
  <input type="text" id="date" />
</div>

name将是第一个,但在某些情况下,在该数组中name项将不存在,因此它不会永远是名称,我希望这有任何意义:)

3 个答案:

答案 0 :(得分:2)

这将循环遍历元素,从头到尾,并显示每个元素的ID。

$('#container input').each(function() {
     alert($(this).attr('id'));
})

$('#container input').eq(0)也将引用第一个输入元素。

答案 1 :(得分:2)

var firstId = $("#container").first().attr("id");

我认为此代码不正确。也许这反过来:

var firstId = $("#container").children().first().attr("id");

答案 2 :(得分:0)

如果要将数组顺序与文档顺序同步,可以执行以下操作:

<div id="container">
  <input type="text" id="name" />
  <input type="text" id="last_name" />
  <input type="text" id="email" />
  <input type="text" id="date" />
</div>​

JS:

var arr = ["email", "name", "date"];
var elems = $("#" + arr.join(", #") );


arr = $.map($.unique(elems.get()), function(v,i) {
    return v.id;
});

console.log(arr);
//["name", "email", "date"] ​​​​​​ same order as they are in the document

http://jsfiddle.net/KKz9U/1/

$.unique将元素排序为与文档中的顺序相同的顺序