我有一个项目列表(为此我只包含一个),我正在尝试将更多项目添加到我的列表中。虽然我可以在列表的末尾插入一个新项目,但我无法设置ID号,它总是为0。
<script>
var count = $("#playlist").children().length;
$(document).ready(function(){
$("button").click(function(){
$("ul").append(
$('<li>').attr('id', 'list['+ count +']').append(
$('<div>').attr('class','item').append(
$('<fieldset>').append(
"<input id='list[i][name]' name='list[i][name]' type='text' class='auto' size='40' value ='NEW "+ count +"'>"
)
)
)
)
})
});
</script>
</head>
<body>
<div class='holder'>
<ul id="playlist">
<li id='list[1]' ><div class='item'><fieldset>
<input id='list[1][name]' name='list[1][name]' type='text' class='auto' size='40' value ='one' />
</fieldset></div></li>
</ul>
<br>
<button>Add new list item</button>
</div>
答案 0 :(得分:3)
将count
变量放在事件侦听器中,因此单击
$(document).ready(function() {
$("button").click(function() {
var count = $("#playlist").children().length;
$("ul").append(
$('<li>').attr('id', 'list[' + count + ']').append(
$('<div>').attr('class', 'item').append(
$('<fieldset>').append(
"<input id='list[i][name]' name='list[i][name]' type='text' class='auto' size='40' value ='NEW " + count + "'>"
)
)
)
)
})
});
现在,您在文档加载前获得count
,而#playlist
甚至无法访问,因此计数始终为0
。
答案 1 :(得分:0)
您不必计算每次点击的计数 如果您不打算将其删除,可以将其增加一个
见下面的例子 https://jsfiddle.net/ammar08429/1bLh6dqk/1/
$(document).ready(function(){
$("button").click(function(){
var count = $("#playlist").children().length;
$("ul").append(
$('<li>').attr('id', 'list['+ count +']').append(
$('<div>').attr('class','item').append(
$('<fieldset>').append(
"<input id='list[i][name]' name='list[i][name]' type='text' class='auto' size='40' value ='NEW "+ count +"'>"
))))})});
答案 2 :(得分:0)
或者,您可以在附加
之前添加count++
var count = $("#playlist").children().length;
$(document).ready(function() {
$("button").click(function() {
count++; ////////////////add this line
$("ul").append(
$('<li>').attr('id', 'list[' + count + ']').append(
$('<div>').attr('class', 'item').append(
$('<fieldset>').append(
"<input id='list[i][name]' name='list[i][name]' type='text' class='auto' size='40' value ='NEW " + count + "'>"
)
)
)
)
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class='holder'>
<ul id="playlist">
<li id='list[1]'>
<div class='item'>
<fieldset>
<input id='list[1][name]' name='list[1][name]' type='text' class='auto' size='40' value='one' />
</fieldset>
</div>
</li>
</ul>
<br>
<button>Add new list item</button>
</div>