jQuery 将升序数字添加到 ID

发布于 2024-12-12 02:37:38 字数 288 浏览 0 评论 0原文

我有一个生成 div 的表单。我已经为每个 div 应用了一个基本 ID,但我需要向它们添加数字以区分它们。

我已经阅读了 Index 并查看了其他示例,但我无法让它在这里工作,当我放入 num 变量时,它似乎抛出了一个不稳定的问题。无论如何,我取出了破坏它的代码。

这是小提琴,http://jsfiddle.net/clintongreen/BMX4J/13/

谢谢

I have a form that generates divs. I have applied a base ID to each div but I need to add numbers to them to differentiate between them.

I have read up on Index and looked at other example but I can't get it to work here, it seemed to throw a wobbly when I put the num variable in. Anyway I took out the code that was breaking it.

Here is the fiddle, http://jsfiddle.net/clintongreen/BMX4J/13/

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

分開簡單 2024-12-19 02:37:38

val() 这里不正确。 val() 用于输入元素。

当您这样做时:

var newDiv = $('<div id="toggleshow" ......

将其更改为:

var newDiv = $('<div id="toggleshow_' + num++ + '"

并在函数外部执行var num = 0;

val() is not correct here. val() is for input elements.

When you do:

var newDiv = $('<div id="toggleshow" ......

Change it to:

var newDiv = $('<div id="toggleshow_' + num++ + '"

And do var num = 0; outside of the function.

林空鹿饮溪 2024-12-19 02:37:38

听起来您想通过向基本 id 添加某种计数器来使创建的 div 中的每个 id 都唯一。如果是这样,最简单的方法是使用两个函数来执行这两个操作。让计数器位于外部函数中,并让内部函数作为捕获计数器并重用它的点击处理程序。

$(".add_menu_item").click((function() {
  var id = 0;
  return function () {
    var value = $(this).prev().val();
    if (value.length) {
      var newDiv = $('<div id="toggleshow" class="div_menu_button"></div>');
      var showDiv = $('<div id="show"' + id + '">Bob Lawbob</div>');
      $('#created_buttons_list').append(newDiv.val(value).text(value));
      newDiv.wrap("<li></li>");
      newDiv.after(showDiv);
      id++;
    }
  }
})());

小提琴:http://jsfiddle.net/BMX4J/17/

It sounds like you want to make every id in the created div unique by adding a counter of sorts to a base id. If so the easiest way to do this two use two functions. Have the counter be in the outer function and let the inner function be the click handler which captures the counter and reuses it.

$(".add_menu_item").click((function() {
  var id = 0;
  return function () {
    var value = $(this).prev().val();
    if (value.length) {
      var newDiv = $('<div id="toggleshow" class="div_menu_button"></div>');
      var showDiv = $('<div id="show"' + id + '">Bob Lawbob</div>');
      $('#created_buttons_list').append(newDiv.val(value).text(value));
      newDiv.wrap("<li></li>");
      newDiv.after(showDiv);
      id++;
    }
  }
})());

Fiddle: http://jsfiddle.net/BMX4J/17/

你的背包 2024-12-19 02:37:38

您可以尝试使用容器的子计数将升序数字附加到新元素:

var count = $("#created_buttons_list").children().length;

newDiv.attr("id", newDiv.attr("id") + "_" + count.toString());

You could try using the child count of the container to append ascending numbers to new elements:

var count = $("#created_buttons_list").children().length;

newDiv.attr("id", newDiv.attr("id") + "_" + count.toString());
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文