我想将jQuery对象数组转换为单个jQuery对象,其中每个元素都在“最后创建的元素之后”:
测试HTML:
<div id="test">asd</div>
<a></a>
JS:
var createElem = function(numElems) {
var elems;
for(var i=0; i<numElems; i+=1) {
elems.push($("#test").clone());
}
return elems;
};
$("a").append(createElem(20)); // fails because its an array and not a jQuery object
我知道我可以创建一个元素并将所有克隆放入其中:
var createElem = function(numElems) {
var elem = $('<div>');
for(var i=0; i<numElems; i+=1) {
elem.append($("#test").clone());
}
return elem;
};
但我不想在返回它们之前不必从这个父包装器中取出元素。
答案 0 :(得分:2)
在使用elems
push
定义为数组
var elems=[];
编辑:<div>
不是<a>
答案 1 :(得分:0)
确保初始化阵列。
var createElem = function(numElems) {
var elems = [];
for(var i=0; i<numElems; i+=1) {
elems.push($("#test").clone());
}
return elems;
};
答案 2 :(得分:0)
答案 3 :(得分:0)
var createElem = function ( numElems ) {
var $elems = $(),
$test = $( '#test' ),
index = 0;
for ( ; index < numElems; index++ ) {
$elems = $elems.add( $test.clone() );
}
return $elems;
};
看看情况如何。我很确定逻辑是正确的,我只是无法通过手机测试它。