在下面的代码中,我正在做各种事情,但我现在看到的是,我为每个菜单项 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。
最佳答案
您可以使用函数来测试第一个可用的 ID。
function setId(elem)
{
var first = 0;
while($('#i'+first).length > 0) first++;
elem.setAttr('id', 'i'+first);
}
//Usage:
setId(myJqueryObject);
关于javascript - 动态为每个元素创建新的唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14741545/