我有一个生成div的表单。我已经为每个div应用了一个基本ID,但我需要为它们添加数字以区分它们。
我已经阅读了Index并查看了其他示例,但是我无法让它在这里工作,当我把num变量放进去时它似乎摇摆不定。无论如何我拿出了打破它的代码。
这是小提琴,http://jsfiddle.net/clintongreen/BMX4J/13/
由于
答案 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++;
}
}
})());