对于html,css和javascript来说还是很新的-对stackoverflow来说也很新。
我正在制作一个html列表,用户可以通过输入文本输入来添加到html列表中,但是我想向每个新li添加按钮,这将导致该特定li变为删除线文本装饰。
该功能的我的javascript代码是:
function addListItem() {
var input = document.getElementById('listAdd').value;
var ul = document.getElementById("list");
var li = document.createElement("li");
var buttonId = document.getElementById('button1').id;
var button = document.createElement('input');
button.type = "button";
button.name = "name";
button.value = "Done";
button.id = buttonId +"1";
li.appendChild(button);
li.appendChild(document.createTextNode(" "+input));
ul.appendChild(li);
}
我假设我需要创建一个单独的函数,该函数将应用于ul的每个添加项,但是我遇到的问题是每个新li的id。
按照目前的情况,所有新li的ID都将为“ button11”,在此我需要它们分别具有唯一的标识符。
我应该使用if语句来实现这一点吗?
感谢所有提出建议,中肯主义的人。
答案 0 :(得分:1)
button.id = buttonId +"1"
是字符串连接,不是任何算术或增量形式。算术时,两个操作数都需要一个数字(“ 1”是字符串,而不是数字)。
我同意SomePerformance的观点,ID可能是不必要的,但是如果您确实希望每个按钮都有唯一的标识符,则可以使用现有按钮的数量(只要您仅添加而不是删除按钮):
button.id = 'button' + li.getElementsByTagName("button").length + 1;
li.getElementsByTagName("button")
将在该<li>
下获得一系列现有按钮。