一尘不染

如何使用jQuery获取所有ID?

javascript

我正在尝试收集一个部门中的ID列表(数组)

<div id="mydiv">
 <span id='span1'>
 <span id='span2'>
</div>

$("#mydiv").find("span");

给我一个jQuery对象,但不是一个真正的数组;

我可以

var array = jQuery.makeArray($("#mydiv").find("span"));

然后使用for循环将id属性放入另一个数组

或者我可以做

$("#mydiv").find("span").each(function(){}); //but i cannot really get the id and assign it to an array that is not with in the scope?(or can I)

无论如何,我只是想看看jQuery中是否有速记来做到这一点。


阅读 855

收藏
2020-05-01

共1个答案

一尘不染

//但是我无法真正获取ID并将其分配给不在范围内的数组?(或者我可以)

是的你可以!

var IDs = [];
$("#mydiv").find("span").each(function(){ IDs.push(this.id); });

请注意,当您处于正确的轨道上时,Sighohwell和cletus都指出了使用属性过滤器(将匹配的元素限制为具有ID的元素)和jQuery的内置map()函数来完成此任务的更可靠,更简洁的方法:

var IDs = $("#mydiv span[id]")         // find spans with ID attribute
  .map(function() { return this.id; }) // convert to set of IDs
  .get(); // convert to instance of Array (optional)
2020-05-01