0

0

在同一列表项中动态添加文本与按钮:JavaScript DOM操作指南

花韻仙語

花韻仙語

发布时间:2025-10-12 11:58:40

|

432人浏览过

|

来源于php中文网

原创

在同一列表项中动态添加文本与按钮:javascript dom操作指南

本教程详细阐述了如何使用JavaScript动态地在同一个`

  • `元素中添加用户输入的文本内容和一个操作按钮(例如“删除”按钮)。通过`document.createElement()`创建元素,并利用`appendChild()`方法多次将不同类型的子元素(文本节点和按钮元素)添加到同一个父元素中,从而实现功能完整的动态列表项。教程提供了清晰的代码示例和实践建议,帮助开发者构建交互式Web应用。

    在Web开发中,动态生成用户界面元素是常见的需求,尤其是在构建任务列表、评论区等交互式应用时。一个典型的场景是,用户输入一段文本,系统将其作为一个列表项显示,并同时提供一个操作按钮(如“删除”),允许用户对该列表项进行后续操作。本文将详细指导您如何利用JavaScript的DOM操作来实现这一功能,确保用户输入和操作按钮都能正确地添加到同一个列表项中。

    核心概念:appendChild()方法的灵活应用

    appendChild()方法是DOM操作中用于将一个节点添加到另一个节点的子节点列表末尾的关键方法。它的一个重要特性是,同一个父元素可以多次调用appendChild()来添加不同的子元素。这意味着,您不仅可以将文本节点添加到

  • 中,还可以将一个按钮元素添加到同一个
  • 中。

    示例场景:构建一个待办事项列表

    我们将通过一个简单的待办事项(Todo List)应用来演示这个过程。用户在一个输入框中键入待办事项,按下Enter键后,该事项会作为一个新的列表项出现在列表中,并且每个列表项旁边都会有一个“删除”按钮。

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

    HTML 结构

    首先,我们需要一个基本的HTML结构,包括一个标题、一个用于用户输入的表单以及一个显示待办事项的有序列表。

    白瓜AI
    白瓜AI

    白瓜AI,一个免费图文AI创作工具,支持 AI 仿写,图文生成,敏感词检测,图片去水印等等。

    下载

    todos

      在这个结构中:

      • #todoForm 是包含输入框的表单。
      • #todoInput 是用户输入待办事项的文本框。
      • #todoList 是我们将动态添加
      • 元素的有序列表。

      JavaScript 实现:动态创建与添加元素

      接下来是JavaScript部分,它负责处理用户输入、创建新的列表项、添加文本和按钮,并将其呈现在页面上。

      function todoListHandler() {
          // 1. 获取用户输入
          const todoInput = document.getElementById('todoInput');
          const itemText = (todoInput as HTMLInputElement).value.trim(); // 获取输入值并去除首尾空格
      
          // 如果输入为空,则不创建新的列表项
          if (itemText === '') {
              alert('待办事项不能为空!');
              return;
          }
      
          // 2. 创建新的列表项 (
    1. ) const newItem = document.createElement('li'); // 3. 创建文本节点,包含用户输入 const textNode = document.createTextNode(itemText); // 4. 创建删除按钮 (
    2. 代码解析:

      1. 获取用户输入: document.getElementById('todoInput') 获取输入框元素,然后通过.value获取其内容。.trim()用于移除输入内容两端的空白字符,提高健壮性。
      2. 创建
      3. 元素:
      4. document.createElement('li') 创建一个新的列表项元素。
      5. 创建文本节点: document.createTextNode(itemText) 创建一个包含用户输入文本的文本节点。
      6. 创建按钮元素: document.createElement("button") 创建一个按钮元素,并通过innerHTML设置其显示文本为“删除”。
      7. 核心步骤:添加子元素到
        • newItem.appendChild(textNode) 将用户输入的文本添加到
        • 中。
        • newItem.appendChild(deleteButton) 这一行是解决问题的关键,它将我们创建的“删除”按钮也添加到了同一个
        • 中。现在,一个
        • 元素同时包含了文本内容和按钮。
      8. 添加到
      9. document.getElementById('todoList').appendChild(newItem) 将包含文本和按钮的完整
      10. 添加到页面上显示的有序列表#todoList中。
      11. 清空输入框: 每次添加后,清空输入框,提升用户体验。
      12. 删除按钮事件: 为新创建的删除按钮添加一个点击事件监听器,当点击时,从父容器中移除对应的

      注意事项与进阶

      • 事件委托(Event Delegation): 在上述示例中,我们为每个新创建的删除按钮都添加了一个独立的事件监听器。当列表项非常多时,这可能会影响性能。更优的实践是使用事件委托,即在父元素(如#todoList)上添加一个监听器,通过判断事件源(e.target)来处理子元素的点击事件。
        // 在todoListHandler函数外,或者在页面加载时执行
        const todoListContainer = document.getElementById('todoList');
        todoListContainer.addEventListener('click', (e) => {
            if ((e.target as HTMLElement).classList.contains('delete-btn')) {
                // 找到最近的
      • 父元素并移除 const listItemToRemove = (e.target as HTMLElement).closest('li'); if (listItemToRemove) { todoListContainer.removeChild(listItemToRemove); } } }); // todoListHandler函数中就不需要为每个deleteButton添加事件监听器了
      • 输入验证: 在实际应用中,您可能需要对用户输入进行更严格的验证,例如限制长度、检查特殊字符等。
      • 持久化数据: 当前的待办事项在页面刷新后会丢失。要实现数据持久化,可以使用localStorage、sessionStorage或后端数据库。
      • 样式化: 通过CSS为新创建的
      • 和button添加样式,使其更符合应用的设计。

      总结

      通过本教程,您应该已经掌握了如何利用JavaScript的DOM操作,在同一个父元素(如

    3. )中动态地添加多个不同类型的子元素(如文本节点和按钮)。关键在于理解appendChild()方法可以被多次调用,并且可以接受不同类型的节点作为参数。结合事件监听和事件委托等技术,您可以构建出功能丰富且用户体验良好的动态Web界面。
    4. 相关专题

      更多
      js获取数组长度的方法
      js获取数组长度的方法

      在js中,可以利用array对象的length属性来获取数组长度,该属性可设置或返回数组中元素的数目,只需要使用“array.length”语句即可返回表示数组对象的元素个数的数值,也就是长度值。php中文网还提供JavaScript数组的相关下载、相关课程等内容,供大家免费下载使用。

      554

      2023.06.20

      js刷新当前页面
      js刷新当前页面

      js刷新当前页面的方法:1、reload方法,该方法强迫浏览器刷新当前页面,语法为“location.reload([bForceGet]) ”;2、replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,不能通过“前进”和“后退”来访问已经被替换的URL,语法为“location.replace(URL) ”。php中文网为大家带来了js刷新当前页面的相关知识、以及相关文章等内容

      374

      2023.07.04

      js四舍五入
      js四舍五入

      js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。php中文网为大家带来了js四舍五入的相关知识、以及相关文章等内容

      732

      2023.07.04

      js删除节点的方法
      js删除节点的方法

      js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

      477

      2023.09.01

      JavaScript转义字符
      JavaScript转义字符

      JavaScript中的转义字符是反斜杠和引号,可以在字符串中表示特殊字符或改变字符的含义。本专题为大家提供转义字符相关的文章、下载、课程内容,供大家免费下载体验。

      394

      2023.09.04

      js生成随机数的方法
      js生成随机数的方法

      js生成随机数的方法有:1、使用random函数生成0-1之间的随机数;2、使用random函数和特定范围来生成随机整数;3、使用random函数和round函数生成0-99之间的随机整数;4、使用random函数和其他函数生成更复杂的随机数;5、使用random函数和其他函数生成范围内的随机小数;6、使用random函数和其他函数生成范围内的随机整数或小数。

      991

      2023.09.04

      如何启用JavaScript
      如何启用JavaScript

      JavaScript启用方法有内联脚本、内部脚本、外部脚本和异步加载。详细介绍:1、内联脚本是将JavaScript代码直接嵌入到HTML标签中;2、内部脚本是将JavaScript代码放置在HTML文件的`<script>`标签中;3、外部脚本是将JavaScript代码放置在一个独立的文件;4、外部脚本是将JavaScript代码放置在一个独立的文件。

      657

      2023.09.12

      Js中Symbol类详解
      Js中Symbol类详解

      javascript中的Symbol数据类型是一种基本数据类型,用于表示独一无二的值。Symbol的特点:1、独一无二,每个Symbol值都是唯一的,不会与其他任何值相等;2、不可变性,Symbol值一旦创建,就不能修改或者重新赋值;3、隐藏性,Symbol值不会被隐式转换为其他类型;4、无法枚举,Symbol值作为对象的属性名时,默认是不可枚举的。

      551

      2023.09.20

      高德地图升级方法汇总
      高德地图升级方法汇总

      本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

      27

      2026.01.16

      热门下载

      更多
      网站特效
      /
      网站源码
      /
      网站素材
      /
      前端模板

      精品课程

      更多
      相关推荐
      /
      热门推荐
      /
      最新课程
      Sass 教程
      Sass 教程

      共14课时 | 0.8万人学习

      Bootstrap 5教程
      Bootstrap 5教程

      共46课时 | 2.9万人学习

      CSS教程
      CSS教程

      共754课时 | 19.6万人学习

      关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
      php中文网:公益在线php培训,帮助PHP学习者快速成长!
      关注服务号 技术交流群
      PHP中文网订阅号
      每天精选资源文章推送

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