动态地为每个元素创建新的唯一ID

时间:2013-02-07 00:30:10

标签: javascript jquery

在下面的代码中,我正在做各种各样的事情,但我现在正在看的是,我正在为每个菜单项分配href与我正在创建的每个元素的id名称相同的名称。

$(".nav li a").on("click", function(e) {
$(this).attr("href",$(".span6").attr("id"));
$('#content').removeAttr('id');

var $row = $(".span9");
var $rowNew = $('.new');

if ($rowNew.children().length > 1) {
        $(".span9 div").removeClass("new");
        $('<div class="row-fluid new"></div>').prependTo($row);
}

if ($(".new").length == 0) {
        $('<div class="row-fluid new"></div>').prependTo($row);
        $('<div id="content" class="span6"></div>').appendTo('.new');
} else {
    $('<div id="content" class="span6"></div>').appendTo('.new');
}

});

这就是我为每个菜单项指定href的名称与我正在创建的每个元素的id名称相同:

    $(this).attr("href",$(".span6").attr("id"));

我现在需要为每个<div id="content" class="span6"></div>

创建一个新的唯一ID名称

我知道它已经有一个名为#content的ID,但是我使用$('#content').removeAttr('id');

点击了一下

如何每次都生成新的唯一ID?

在另一个使用php的模板中我执行:<?php $a = 1; ?>然后<div class="span6" id="<?php echo "i".$a; ?>">循环然后<?php $a++; ?>但是在我的情况下使用jquery?

此外,我认为我需要针对第一个和最后一个<div id="content" class="span6"></div>做一些事情,因为这些已经设置了id #content,这些ID仅在下一次点击时被移除,因此创建了新的id会导致第一个和最后一个有2个ID。

1 个答案:

答案 0 :(得分:1)

您可以使用功能测试第一个可用的ID。

function setId(elem)
{
    var first = 0;
    while($('#i'+first).length > 0) first++;
    elem.setAttr('id', 'i'+first);
}

//Usage:
setId(myJqueryObject);