我正在编写一个脚本,将每个子元素推送到一个全局数组(稍后在我的脚本中进行处理)但由于某种原因它实际上并没有将元素推入数组。
代码:
var childElements=new Array();
function getChildren(elem){
$(elem).children().each(function(index, value){
childElements[index] = $(this);
});
}
我做错了吗?
答案 0 :(得分:3)
由于jQuery对象是一个类似于Array的对象,我可能只是使用它而不是创建一个独立包装的对象数组。
var childElements=$(elem).children();
如果您打算添加更多元素,可以.push()
始终.add()
个新元素。这也将确保您没有重复项。
var childElements= $();
function getChildren(elem){
childElements = childElements.add( $(elem).children() );
}
答案 1 :(得分:2)
$.each($(elem).children(), function(index, value){
childElements[index] = $(this);
});
编辑:Patrick是一个有效的观点。如果您只是想要一个子对象数组,那么简单的var childElements = $('selector').children();
就足够了。您不需要该函数,除非您希望该数组的值包含子元素的特定属性(的组合)。