Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Javascript添加的新列表项需要单独的ID_Javascript_Html - Fatal编程技术网

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

通过Javascript添加的新列表项需要单独的ID,javascript,html,Javascript,Html,对html、css和javascript相当陌生-对stackoverflow也相当陌生 我正在制作一个html列表,用户可以通过键入文本输入来添加该列表,但我想在每个新的li中添加按钮,从而使特定的li更改为删除线文本装饰 我的函数javascript代码是: function addListItem() { var input = document.getElementById('listAdd').value; var ul = document.getElemen

对html、css和javascript相当陌生-对stackoverflow也相当陌生

我正在制作一个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语句来实现这一点吗


感谢所有有建议的人,中信等等。

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

我同意某些性能,即可能不需要id,但如果您确实需要每个按钮的唯一标识符,则可以使用现有按钮的计数(只要您只是添加而不是删除按钮):


li.getElementsByTagName(“按钮”)
将获得一个现有按钮数组,该数组位于不使用ID的
  • 下-这种做法无法达到目的。如果需要,请改用类。如果在函数中添加事件侦听器,那么您已经有了对
  • 本身中所有其他元素的引用。动态增加ID的工作量超出了它的价值。请注意,您将始终以递增
    按钮1
    结束,因此,所有添加的项目都将具有相同的IDP问题。如果项目开始移除,该方法将显示问题谢谢大家!我想看看是否有可能做到这一点。Devon的回答给了我需要的线索,我使用getElementsByTagName(“li”).length来解决这个问题。我不需要从列表中删除项目,但这对于未来的项目来说是一个很好的想法!再次感谢!
    button.id = 'button' + li.getElementsByTagName("button").length + 1;