jQuery将升序号添加到ID

时间:2011-10-25 23:00:52

标签: jquery indexing

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

我已经阅读了Index并查看了其他示例,但是我无法让它在这里工作,当我把num变量放进去时它似乎摇摆不定。无论如何我拿出了打破它的代码。

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

由于

3 个答案:

答案 0 :(得分:5)

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

当你这样做时:

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

将其更改为:

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

在功能之外做var num = 0;

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

听起来你想通过向基本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/