while循环使用每种方法

时间:2014-12-31 09:32:12

标签: javascript jquery

我根据用户点击使用静态编号向页面添加元素。所以元素根据用户点击具有序列号。

当用户点击任何元素并删除时,我需要重新排列序列号。我尝试使用while循环的每个运算符,但不工作。

任何人都建议我正确的方式pelase。

这是我的尝试:

var num = this.clipsLength, clipNum=1;

            while(this.clipsLength > 0){

                $.each(this.collection.pages, function(index, page) {

                    $.each(page, function(n, cs) {
                        var title = $(cs).find('span.text');
                        title.html('Clipping' + clipNum); //always 0 or all clips are '0'
                    });

                });

                --this.clipsLength;
                clipNum = num-this.clipsLength;
            }

这里的尝试是小提琴:

Live Demo

4 个答案:

答案 0 :(得分:2)

你的意思是重置数字吗?

http://jsfiddle.net/Lgwow5pt/2/

$('#content').on('click', '.remove', function () {
  $(this).parent().remove();
  $('span').each(function(i, item){
    item.lastChild.textContent = i+1;
  });

答案 1 :(得分:1)

Demo

试试这个

var htmlT = '<span><a href="#" class="remove">x</a></span>';
i=1;

$('#content').on('click', '.remove', function () {
   $(this).parent().remove();
    i = 1;
    $('#content span').each(function() {
        $(this).html('<a class="remove" href="#">x</a>'+i);
        i++;
    });
})

$('.add').click(function () {
    $('#content').append($(htmlT).append(i));
    i++;
});

答案 2 :(得分:0)

这里有效

我修改了你的小提琴。

http://jsfiddle.net/khaleel/Lgwow5pt/7/

$('#content').on('click', '.remove', function () {
   $(this).parent().remove();
    var l= $("#content").find('span').length;
      $('#content').empty();
        i=1;
    for(var j=0;j<l;j++){
       $('#content').append($(htmlT).append(i));
    i++;
    } 
})

希望您接受解决方案

答案 3 :(得分:0)

嗯..根据你的小提琴,我试图解决这个问题。希望这会有所帮助。

使用以下内容更改.remove上的click事件:

$('#content').on('click', '.remove', function () {
j=i-2;
i=1;
$(this).parent().remove();
$("#content").html("");
for(k=0;k<j;k++)
    $('.add').trigger('click');
})