我正在尝试收集一个部门中的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中是否有速记来做到这一点。
//但是我无法真正获取ID并将其分配给不在范围内的数组?(或者我可以)
是的你可以!
var IDs = []; $("#mydiv").find("span").each(function(){ IDs.push(this.id); });
请注意,当您处于正确的轨道上时,Sighohwell和cletus都指出了使用属性过滤器(将匹配的元素限制为具有ID的元素)和jQuery的内置map()函数来完成此任务的更可靠,更简洁的方法:
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)