JavaScript动态列表项:如何将删除按钮置于左侧

DDD
发布: 2025-10-16 13:17:27
原创
249人浏览过

javascript动态列表项:如何将删除按钮置于左侧

本文旨在解决在使用 JavaScript 动态创建列表项时,如何将删除按钮默认放置在列表项左侧的问题。通过修改 DOM 元素的添加顺序,并结合 CSS 样式调整,实现按钮位置的灵活控制。同时,本文还提供了完整的代码示例,帮助开发者快速理解和应用。

在使用 JavaScript 创建动态列表时,常常需要在每个列表项(<li>)中添加一个删除按钮。默认情况下,使用 appendChild 方法会将新元素添加到父元素的末尾,导致删除按钮出现在列表项的右侧。本文将介绍如何通过修改 JavaScript 代码,将删除按钮放置在列表项的左侧。

解决方案

核心思路在于调整 DOM 元素的添加顺序。在创建新的列表项时,先将删除按钮添加到 <li> 元素中,然后再添加文本节点。这样,按钮就会出现在文本的前面,从而实现左侧显示的效果.

代码示例

以下是修改后的 JavaScript 代码:

立即学习Java免费学习笔记(深入)”;

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() {
  // 创建新的 li 元素
  var li = document.createElement("li");

  // 将按钮添加到 li
  var newButton = document.createElement("button");
  newButton.innerHTML = "X";
  li.appendChild(newButton);

  // 然后将文本添加到 li
  li.appendChild(document.createTextNode(input.value));
  input.value = "";

  li.addEventListener("click", function() {
    li.classList.toggle("done");
  });

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

  // 将构造好的 li 添加到 ul
  ul.appendChild(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();
  })
}
登录后复制

关键在于 createListElement 函数中,先创建 newButton 并将其 appendChild 到 li,然后再添加文本节点。

爱图表
爱图表

AI驱动的智能化图表创作平台

爱图表 99
查看详情 爱图表

HTML 结构

以下是对应的 HTML 结构:

<h1>Javascript event listener</h1>
<input id="user" type="text" placeholder="enter item here">
<button id="enter">Enter</button>
<p id="test"></p>
<ul>
  <li class="red blue" random="26"><button class="clearButton">X</button>lettuce</li>
  <li><button class="clearButton">X</button>apples</li>
  <li><button class="clearButton">X</button>oranges</li>
  <li><button class="clearButton">X</button>fruits</li>
  <li><button class="clearButton">X</button>candy</li>
</ul>
登录后复制

CSS 样式

为了使按钮和文本在视觉上更协调,可以使用 CSS 进行样式调整:

ul {
  list-style-type: none;
  padding: 0;
  width: 15rem;
}

li button {
  color: red;
  margin-right: .5rem; /* 调整按钮与文本之间的间距 */
  border-radius: 10px;
  border: none;
}

/* 附加样式 */

li:hover, li button:hover {
  cursor: pointer;
}

.done {
  text-decoration: line-through;
}
登录后复制

margin-right 属性用于调整按钮和文本之间的间距,可以根据实际情况进行调整。

注意事项

  • DOM 操作性能: 频繁的 DOM 操作可能会影响性能。如果需要创建大量的列表项,可以考虑使用文档片段(DocumentFragment)来优化性能。
  • 事件委托: 为了提高性能,可以将事件监听器添加到 <ul> 元素上,而不是每个 <li> 元素上。这称为事件委托。

总结

通过调整 DOM 元素的添加顺序,可以轻松地控制动态创建的列表项中删除按钮的位置。结合 CSS 样式调整,可以创建出美观且功能完善的动态列表。在实际开发中,还需要注意性能优化和代码的可维护性。

以上就是JavaScript动态列表项:如何将删除按钮置于左侧的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号