当前位置:首页 > JavaScript

js 实现增加删除

2026-04-04 13:47:55JavaScript

使用 JavaScript 实现元素的增加与删除

增加元素

通过 createElement 方法创建新元素,并使用 appendChildinsertBefore 将其添加到 DOM 中。

// 创建新元素
const newElement = document.createElement('div');
newElement.textContent = '新添加的元素';

// 添加到父元素的末尾
document.getElementById('parent').appendChild(newElement);

// 插入到特定元素之前
const referenceElement = document.getElementById('reference');
document.getElementById('parent').insertBefore(newElement, referenceElement);

删除元素

使用 removeChildremove 方法从 DOM 中移除元素。

js 实现增加删除

// 通过父元素删除子元素
const parent = document.getElementById('parent');
const childToRemove = document.getElementById('child');
parent.removeChild(childToRemove);

// 直接删除元素(现代浏览器支持)
const elementToRemove = document.getElementById('element');
elementToRemove.remove();

动态列表的增删示例

以下是一个完整的动态列表增删实现示例:

js 实现增加删除

<ul id="list">
  <li>项目1</li>
  <li>项目2</li>
</ul>
<input type="text" id="newItem" placeholder="输入新项目">
<button onclick="addItem()">添加</button>

<script>
function addItem() {
  const input = document.getElementById('newItem');
  const text = input.value.trim();
  if (text) {
    const list = document.getElementById('list');
    const newItem = document.createElement('li');
    newItem.textContent = text;
    newItem.onclick = function() {
      this.remove();
    };
    list.appendChild(newItem);
    input.value = '';
  }
}

// 为现有列表项添加点击删除功能
document.querySelectorAll('#list li').forEach(item => {
  item.onclick = function() {
    this.remove();
  };
});
</script>

使用事件委托优化性能

对于大量动态元素,使用事件委托可以提高性能:

document.getElementById('list').addEventListener('click', function(e) {
  if (e.target.tagName === 'LI') {
    e.target.remove();
  }
});

注意事项

  • 确保在操作 DOM 前元素已加载完成,可将脚本放在页面底部或使用 DOMContentLoaded 事件
  • 删除元素前应考虑是否需要保存数据或触发其他操作
  • 动态添加的元素如需事件监听,推荐使用事件委托而非逐个绑定

框架中的实现(Vue 示例)

new Vue({
  el: '#app',
  data: {
    items: ['项目1', '项目2'],
    newItem: ''
  },
  methods: {
    addItem() {
      if (this.newItem.trim()) {
        this.items.push(this.newItem);
        this.newItem = '';
      }
    },
    removeItem(index) {
      this.items.splice(index, 1);
    }
  }
});

对应的 HTML 结构:

<div id="app">
  <ul>
    <li v-for="(item, index) in items" @click="removeItem(index)">
      {{ item }}
    </li>
  </ul>
  <input v-model="newItem" placeholder="输入新项目">
  <button @click="addItem">添加</button>
</div>

标签: js
分享给朋友:

相关文章

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(func,…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…

js实现下拉刷新

js实现下拉刷新

监听触摸事件 通过监听 touchstart、touchmove 和 touchend 事件来检测用户下拉手势。记录触摸起始位置和移动距离。 let startY = 0; let curr…

js实现删除

js实现删除

使用 splice 方法删除数组元素 splice 方法可以删除数组中的元素,并返回被删除的元素。它接受两个参数:起始索引和要删除的元素数量。 const array = [1, 2, 3, 4…

js 实现全选

js 实现全选

实现全选功能的方法 使用 JavaScript 实现全选功能通常需要操作复选框(checkbox)的状态。以下是几种常见的实现方式。 通过 DOM 操作实现全选 // 获取全选复选框和子复选框 co…