当使用Javascript在中间添加一个时,重新编号数字排序的div ID

时间:2010-05-10 22:26:38

标签: javascript jquery numbered

我正在用javascript开发一个应用程序。我需要的是拥有id为(1,2,3 ......)的div并且能够在jquery之间插入一个div,例如2和3之间的div,然后将其作为新的三个,并且三个变为四,四成五,等等我有div插入工作,我只需要知道如何重新排序div。有什么想法吗?

4 个答案:

答案 0 :(得分:3)

插入新div后,您可以这样做:

var i = 1;
$('div').each(function() {
    $(this).attr('id', i++);
});

用你自己的选择器替换$('div')。

另请注意,根据您使用的HTML版本,ID不能以数字开头。

答案 1 :(得分:1)

您无法使用数值启动ID,但无论如何都要执行

之类的操作
// set a data value in the div you have just inserted into the dom and set a variable theID to the current ID you have just inserted.

$(this).data('inserted', true);
var theID = $(this).attr('id'); // this will be 3.


// now to update the other divs.
$('div').each(function() {
    if($(this).attr('id') >= theID && !$(this).data('inserted')){
        $(this).attr('id', $(this).attr('id') + 1);
    }
});

// now set the data inserted to false for future updates
$('div#3').data('inserted', false);

答案 2 :(得分:1)

$(function() {

  reorder();

  $('#click').click(function() {

    $('<h2>hello world blah!</h2>').insertAfter('.content h2:eq(1)');
    reorder();
  });

});

function reorder() {
 $('.content h2').each(function(i) {
    $(this).attr('id', 'order_'+(i+1));
 // alert( parseInt(this.id.split('_')[1]) ); // this is the id #
 });
};

答案 3 :(得分:0)

我很确定你从jQuery选择器中以DOM顺序返回,所以你不能只找到父元素,选择子<div>元素,然后.each()通过列出?