使用jQuery add()在循环中添加元素

时间:2015-04-25 14:22:00

标签: jquery

如何使用jQuery的add()在循环中添加元素?

http://jsfiddle.net/smqtxtnt/2/

var allFields1 = $([]).add($('<input/>')).add($('<input/>').add($('<input/>')));
console.log(allFields1);

var allFields2 = $([]);

$([1,2,3]).each(function (index) {
    var input=$('<input/>').val(index);
    allFields2.add(input);
})

console.log(allFields2);

我知道为什么我的上述代码无法按https://api.jquery.com/add/所描述的那样工作:

  

以下内容不会保存添加的元素,因为.add()方法会创建一个新集并使原始集在pdiv中保持不变:

var pdiv = $( "p" );
pdiv.add( "div" ); // WRONG, pdiv will not change

......但不知道该怎么做。

1 个答案:

答案 0 :(得分:3)

保存结果:

allFields2 = allFields2.add(input);

旁注:如果您尝试做的只是循环三次,那么您不需要在数字数组周围使用jQuery对象:

[1,2,3].forEach(function(value, index) {
    var input=$('<input/>').val(index);
    allFields2 = allFields2.add(input);
});

$.each([1,2,3], function(index) {
    var input=$('<input/>').val(index);
    allFields2 = allFields2.add(input);
});