我正在尝试收集一个扇区中的in列表(数组)
<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中是否有这样的速记;
发布于 2009-05-05 23:04:37
.get()方法将从jQuery对象返回一个数组。此外,您还可以在调用get()之前使用.map投影到某个对象。
var idarray = $("#myDiv")
.find("span") //Find the spans
.map(function() { return this.id; }) //Project Ids
.get(); //ToArray
发布于 2009-05-05 23:07:30
我的建议是什么?
var arr = $.map($("#mydiv [id]"), function(n, i) {
return n.id;
});
您也可以这样做:
var arr = $.map($("#mydiv span"), function(n, i) {
或
var arr = $.map($("#mydiv span[id]"), function(n, i) {
或者仅仅是:
var arr = $("#mydiv [id]").map(function() {
return this.id;
});
基本上有很多种方式。
发布于 2009-05-05 23:03:05
我能想到的最好的解决方法就是制作一个自定义的jquery插件来完成这个任务:
jQuery.fn.getIdArray = function() {
var ret = [];
$('[id]', this).each(function() {
ret.push(this.id);
});
return ret;
};
然后做像这样的事情
var array = $("#mydiv").getIdArray();
https://stackoverflow.com/questions/827294
复制相似问题