通过Javascript添加的新列表项需要单独的ID

时间:2018-09-02 19:00:53

标签: javascript html

对于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语句来实现这一点吗?

感谢所有提出建议,中肯主义的人。

1 个答案:

答案 0 :(得分:1)

button.id = buttonId +"1"是字符串连接,不是任何算术或增量形式。算术时,两个操作数都需要一个数字(“ 1”是字符串,而不是数字)。

我同意SomePerformance的观点,ID可能是不必要的,但是如果您确实希望每个按钮都有唯一的标识符,则可以使用现有按钮的数量(只要您仅添加而不是删除按钮):

button.id = 'button' + li.getElementsByTagName("button").length + 1;

li.getElementsByTagName("button")将在该<li>下获得一系列现有按钮。