Closure函数从循环追加所有索引

时间:2015-01-01 06:23:18

标签: javascript jquery closures

我正在尝试使用循环将索引值附加到元素。我做了closure以避免附加多个索引。

但我的closure函数仍将多个(上一个)索引添加到dom

    var $newdiv = $('.div').clone().removeClass('div').addClass('show')
    $col = $('<div />');
   var add = function () {
    for(var i=1; i<=10; i++){
        (function x (n) {
            return function () { //not working!
                $newdiv.find($('a span').append(n)).end().clone().appendTo($col);
            }();
        }(i));
    }

}

$col.appendTo('#content');
$('button').click(function () { add()});
$('#content').slimScroll({});

Live

1 个答案:

答案 0 :(得分:0)

我像这样更新了我的代码。它工作正常。

var $newdiv = $('.div').clone().removeClass('div').addClass('show')
    $col = $('<div />');
var n = 0;
   var add = function () {
    for(var i=1; i<=10; i++){
         $newdiv.clone().removeClass('div').addClass('show')
         .find('span').append(n = n < 9 ? '0'+(++n) : ++n).end().clone().appendTo($col);
    }

}

$col.appendTo('#content');
$('button').click(function () { add()});
$('#content').slimScroll({});