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

标签 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。

最佳答案

您可以使用函数来测试第一个可用的 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/

相关文章:

javascript - 如何禁用特定div之外的点击

javascript - 用jquery将点击的对象id变成变量进行优化

java - 在 Spring 中从 Controller 在 toastr 中显示消息

javascript - 手动加载 CSS 文件时无法查找元素的 CSS 属性

javascript - 在 Javascript/jQuery 中无法检索 Django 模板变量值

jquery - 有没有办法让 JQuery ajax 成功函数访问它所包含的对象?

Javascript:在特定屏幕尺寸下移除子对象

javascript - 如何使用 firebase 信息设置变量

javascript - 你如何在 javascript 中选择包含特定字符串的所有 id 标签?

javascript - onclick 在 jquery 中不起作用