新闻中心

J*aScript动态列表项:将删除按钮置于左侧

2025-10-17
浏览次数:
返回列表

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

本文档旨在指导开发者在使用J*aScript动态生成列表项时,如何将删除按钮放置在列表项的左侧。通过调整DOM元素的创建和添加顺序,实现自定义样式的列表项,并提供完整的示例代码和CSS样式,帮助你轻松掌握列表项的布局控制。

在J*aScript中动态创建列表项(

  • )并添加删除按钮时,默认情况下,按钮通常会添加到列表项的末尾,也就是右侧。如果希望将删除按钮放置在列表项的左侧,只需要调整创建和添加元素的顺序即可。

    实现方法

    核心思路是在创建

  • 元素后,先将删除按钮作为子元素添加到
  • 中,然后再添加文本节点。这样,在HTML结构中,按钮就会位于文本内容之前,从而显示在左侧。

    示例代码

    以下代码展示了如何修改原有的createListElement函数,将删除按钮放置在列表项的左侧:

    function createListElement() {
      // 创建新的 li 元素
      var li = document.createElement("li");
    
      // 创建删除按钮
      var newButton = document.createElement("button");
      newButton.innerHTML = "X";
    
      // 先将按钮添加到 li 元素
      li.appendChild(newButton);
    
      // 然后添加文本节点
      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);
    }

    在上面的代码中,关键的改变在于:

    1. 创建了 newButton 按钮元素。
    2. 使用 li.appendChild(newButton) 将按钮添加为 li 元素的第一个子元素。
    3. 使用 li.appendChild(document.createTextNode(input.value)) 将文本节点添加到 li 元素中。由于按钮已经添加,文本节点将紧随其后,显示在按钮的右侧。

    完整代码示例

    察言观数AskTable 察言观数AskTable

    企业级AI数据表格智能体平台

    察言观数AskTable 78 查看详情 察言观数AskTable
    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");
    
      // 创建删除按钮
      var newButton = document.createElement("button");
      newButton.innerHTML = "X";
    
      // 先将按钮添加到 li 元素
      li.appendChild(newButton);
    
      // 然后添加文本节点
      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();
      })
    }

    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;
    }

    HTML 结构

    <h1>J*ascript 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>

    注意事项

    • DOM 操作性能: 频繁的 DOM 操作可能会影响性能,特别是在处理大量列表项时。可以考虑使用文档片段 (DocumentFragment) 来批量添加元素,减少 DOM 操作次数。
    • 事件委托: 对于动态添加的元素,建议使用事件委托,将事件监听器绑定到父元素上,而不是每个子元素。这样可以避免为每个新元素都绑定事件监听器,提高性能。

    总结

    通过简单地调整 J*aScript 代码中 DOM 元素的创建和添加顺序,就可以轻松地控制删除按钮在列表项中的位置。理解 DOM 结构和元素添加顺序是实现自定义列表项样式的关键。 同时,注意优化 DOM 操作和事件处理,以提高应用程序的性能。

  • 以上就是J*aScript动态列表项:将删除按钮置于左侧的详细内容,更多请关注其它相关文章!


    # 可选  # 杭州抖音seo机构排名  # 临沂seo推广费用  # 潍坊怎样seo优化  # 盐城做网站推广选哪家  # 扬州专业的网站优化价格  # 诸暨网站优化价格  # 网购网站建设的步骤  # 甜文推广视频在线观看网站  # 网站推广没有转化  # 建设招聘网站  # 文档  # 就会  # 显示效果  # 绑定  # css  # 自定义  # 单选框  # 是在  # 先将  # 表单  # red  # css样式  # apple  # ssl  # app  # node  # html  # java  # javascript 


    相关栏目: 【 科技资讯46185 】 【 网络学院92790


    相关推荐: 精准捕获:如何在页面中监听除特定元素外的所有点击事件  c++如何使用std::memory_order控制原子操作顺序_c++ C++11内存模型详解  J*aScript中正确使用querySelectorAll与复杂CSS选择器  漫蛙2(台版)官方入口地址 漫蛙2(台版)正版漫画网页端  php源码怎么看淘宝客系统_看php源码淘宝客系统技巧  PHP中SSG-WSG API的AES加密实践:正确使用初始化向量  c++ dfs和bfs代码 c++深度广度优先搜索算法  微信网页版登录教程_微信网页版登录入口在哪  想当下一个《2077》?《心之眼》Steam评价升至"多半好评"  Composer的 "check-platform-reqs" 命令有什么用_在部署前检查生产环境是否满足Composer依赖需求  c++ 命名空间怎么用 c++ namespace使用指南  Golang如何安装Swagger工具_GoSwagger文档生成环境  品牌机怎么重装系统 联想/戴尔/惠普笔记本恢复出厂系统教程  J*a里如何实现订单支付与库存同步功能_支付库存同步项目开发方法说明  AO3中文官网链接_AO3网页版稳定镜像站  免费抖音短视频入口_抖音网页版短视频免费通道  Descript怎样用AI剪辑自动去噪_Descript用AI剪辑自动去噪【自动降噪】  拼多多视频播放卡顿如何处理 拼多多视频播放优化技巧  css滚动动画效果怎么实现_使用Animate.css滚动触发动画类  qq游戏手机版下载安装_qq游戏移动端入口  c++中的const_cast和reinterpret_cast怎么用_c++四种类型转换  荣耀Play7T运行卡顿解决_荣耀Play7T性能优化  KFC早餐时段怎么领特惠代码_KFC早餐订餐优惠代码获取与使用说明  将HTML动态表格多行数据保存到Google Sheet的教程  漫画星球免费下拉式入口 漫画星球免费漫画在线阅读网站  如何将HTML表格多行数据保存到Google Sheets  Win11怎么修改默认浏览器_Windows 11设置Chrome为默认  excel怎么制作工资条 excel快速生成工资条的方法  PDF怎么合并PDF并保持格式_PDF合并文件保持排版教程  如何有效阻止外部脚本意外修改内联样式的高度属性  PySpark中高效提取字符串右侧可变长度数字:使用regexp_extract  处理嵌套交互式控件:前端可访问性指南  J*a递归快速排序中静态变量导致数据累积问题的解决方案  如何使用J*aScript精确选择并批量修改特定父元素下子链接的样式  CSS自定义字体样式被系统字体替换怎么办_font-face方式指定font-display控制渲染策略  Win10如何开启蓝牙功能_Windows10找不到蓝牙开关解决方法  React中useState与局部变量:理解组件状态管理与渲染机制  html网页设计源代码怎么运行_运行html网页设计源代码步骤【指南】  Python Socket多播通信中指定源IP地址的实践指南  夸克浏览器桌面版同步不了书签怎么处理 夸克浏览器跨设备同步异常解决方案  Win11输入法不见了怎么办_Windows11恢复语言栏显示方法  QQ邮箱登录官网首页 腾讯QQ邮箱网页入口  Sublime Text怎么设置垂直标尺_Sublime配置Rulers规范代码长度  Node.js CSV 数据处理:基于字段值条件过滤整条记录的策略  163邮箱注册官网 免费申请163个人邮箱  多闪网页版在线观看免费入口_多闪官网访问入口  sublime怎么覆盖插件的默认快捷键_sublime快捷键优先级与设置  三星GalaxyZFold5怎样在相册制作折叠屏分镜_iPhone三星GalaxyZFold5相册制作折叠屏分镜【创意编辑】  《噬血代码2》新预告片发布 展示游戏剧情  Win11怎么查看显卡显存 Win11显示适配器属性及专用视频内存查询 

    搜索