You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让JavaScript动态生成的li元素删除按钮显示在左侧

解决新增列表项删除按钮居右的问题

问题原因

静态列表项的删除按钮在左侧,是因为HTML结构里按钮元素写在文本内容前面;而你通过JS新增列表项时,先给<li>添加了文本节点,再追加按钮,DOM元素的顺序直接决定了渲染顺序,所以按钮被放到了文本右侧。

修复方案

修改createListElement函数,调整元素添加顺序:先创建按钮并插入到<li>中,再添加文本内容;同时给新按钮加上原有按钮的clearButton类名,保证样式和交互逻辑统一。

修改后的完整JavaScript代码

var button = document.getElementById("enter")
var input = document.getElementById("user");
var ul = document.querySelector("ul");
var li = document.querySelectorAll("li");
var clearButton = document.getElementsByClassName("clearButton");

function listItems() {
  return input.value.length
}

function createListElement() {
  var li = document.createElement("li");
  // 先创建按钮并添加到li
  var newButton = document.createElement("button");
  newButton.innerHTML = "X";
  newButton.classList.add("clearButton"); // 加上原有按钮的类名
  li.appendChild(newButton);
  // 再添加文本节点
  li.appendChild(document.createTextNode(input.value));
  ul.appendChild(li);
  input.value = "";
  
  li.addEventListener("click", function() {
    li.classList.toggle("done");
  })

  newButton.addEventListener("click", function() {
    ul.removeChild(li);
  })
}

function addItemAfterEnter() {
  if (listItems() > 0) {
    createListElement();
  }
}

function addItemAfterKeypress(event) {
  if (listItems() > 0 && event.keyCode === 13) {
    createListElement();
  }
}

button.addEventListener("click", addItemAfterEnter);
input.addEventListener("keypress", addItemAfterKeypress)

for (var i = 0; i < li.length; i++) {
  li[i].addEventListener("click", function() {
    this.classList.toggle("done");
  })
}

for (var i = 0; i < clearButton.length; i++) {
  clearButton[i].addEventListener("click", function() {
    this.parentNode.remove();
  })
}

说明

  • 调整了按钮和文本节点的添加顺序,让按钮先被插入到<li>,保证渲染在左侧
  • 给新按钮添加clearButton类名,确保它和原有按钮使用相同的CSS样式,同时保持结构规范
  • CSS和HTML代码无需修改,保持原有内容即可

内容的提问来源于stack exchange,提问作者Arye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 05:18:16