如何设置链路的动态id

How to set the dynamic ids for link?

本文关键字:链路 动态 id 设置 何设置      更新时间:2023-09-26

我有一个水平菜单。我想用jQuery为每个人创建一个id。我的代码是:

<div class="menuBar">
    <div class="menuHeader ui-corner-top">
        <span><a href="#" onclick="Home()">Home</a></span>
    </div>
    <div class="menuHeader ui-corner-top">
        <span><a href="#" onclick="NewTransaction()" id="menu2">New Transaction</a></span>
    </div>
</div>

这里的菜单没有id。我想用jQuery动态创建id。我该怎么做呢?我做了一个这样的例子,但它不工作:

var i = 0;
$('.menuHeader').each(function () {
    i++;
    newID = menu + i;
    $(this).attr('id', newID);
    $(this).val(i);
});

设计.each()方法是为了使DOM循环构造更简洁,更不容易出错。当被调用时,它遍历作为jQuery对象一部分的DOM元素。每次回调运行时,从0开始将当前循环迭代传递给它。

当您将菜单字符串与i变量连接时,您还省略了引号。

$('.menuHeader').each(function (i) {
  $(this).find('a').attr('id', 'menu' + (i + 1));
  $(this).html((i + 1) + '. ' + $(this).html());
});

jsFiddle演示

试试这个,不需要额外的变量i:

$('.menuHeader').each(function () {
    $(this).attr('id', 'menu' + ($(this).index() + 1));
    $(this).val($(this).index() + 1);
});

试试这个

   $('.menuHeader').each(function (i) {
      newID = "menu_" + i;
      $(this).attr('id', newID);
      $(this).val(i);
    });