原生JS实现列表项删除功能:面向对象与事件委托详解

作者:页面旅途时间:2026-10-23 06:23:25浏览:639

本文介绍如何利用原生JavaScript,通过面向对象思想实现买家信息列表的删除功能。文章详细讲解了如何在Contact构造函数中封装init方法,获取DOM元素并绑定点击事件以移除对应的li标签。同时强调不使用第三方库,并针对手机端显示添加了响应式meta标签,确保页面在移动设备上清晰展示。

原生JS删除列表项功能概述

本文旨在通过面向对象的设计思想,实现买家信息的删除功能。每条信息记录包含以下字段:

  • 姓名
  • 电话
  • 电话号码
  • 省份

功能实现要求与规范

具体实现需满足以下要求:

禁止使用任何第三方库,必须完全使用原生代码完成。请结合提供的代码框架,在标记为“code here”的两个位置补充逻辑,以实现买家信息的删除功能。此外,需确保页面在手机终端上能够清晰显示。JavaScript代码可根据需要调整,例如采用ES6语法进行编写。

基础代码结构与响应式适配

基础代码结构如下:


<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <!--code here-->
 <title>demo</title>
 <style>
  * {
   padding: 0;
   margin: 0;
  }

  .head, li div {
   display: inline-block;
   width: 70px;
   text-align: center;
  }

  li .id, li .sex, .id, .sex {
   width: 15px;
  }

  li .name, .name {
   width: 40px;
  }

  li .tel, .tel {
   width: 90px;
  }

  li .del, .del {
   width: 15px;
  }

  ul {
   list-style: none;
  }

  .user-delete {
   cursor: pointer;
  }

 </style>
</head>

<body>
<div id="J_container">
 <div class="record-head">
  <div class="head id">序号</div>
  <div class="head name">姓名</div>
  <div class="head sex">性别</div>
  <div class="head tel">电话号码</div>
  <div class="head province">省份</div>
  <div class="head">操作</div>
 </div>
 <ul id="J_List">
  <li>
   <div class="id">1</div>
   <div class="name">张三</div>
   <div class="sex">男</div>
   <div class="tel">13788888888</div>
   <div class="province">浙江</div>
   <div class="user-delete">删除</div>
  </li>
  <li>
   <div class="id">2</div>
   <div class="name">李四</div>
   <div class="sex">女</div>
   <div class="tel">13788887777</div>
   <div class="province">四川</div>
   <div class="user-delete">删除</div>
  </li>
  <li>
   <div class="id">3</div>
   <div class="name">王二</div>
   <div class="sex">男</div>
   <div class="tel">13788889999</div>
   <div class="province">广东</div>
   <div class="user-delete">删除</div>
  </li>
 </ul>
</div>

<script>
 // 此处也可换成ES6的写法
 function Contact() {
  this.init();
 }

 // your code here
</script>
</body>
</html>

为了保证页面在手机设备上清晰显示,必须添加响应式的meta标签:


<meta name="viewport" content="width = device-width,initial-scale=1">

DOM操作与事件处理逻辑

实现思路如下:

首先获取页面中所有的li标签,然后判断具体点击了哪一个li标签,在触发点击事件后,执行remove操作将该元素从DOM中移除。

Contact对象初始化方法封装

基础代码中已提供Contact函数,需要在该函数内部添加init初始化方法:


Contact.prototype.init = function () {
  console.log("Test");
  var div = document.getElementsByClassName("user-delete");
  var ul = document.querySelector("#J_List");
  var list = ul.querySelectorAll("li");

  for (var i = 0; i < div.length; i++) {
   (function (i) {
    div[i].onclick = function () {
     list[i].remove();
     console.log(i);
    }
   })(i);
  }
 }

new Contact();

以上内容为本文的全部讲解,希望对读者的学习有所帮助,也欢迎大家继续支持本站。

作者最新文章