js 添加、删除DOM元素

1. js添加、删除DOM元素

1.1. 添加DOM元素

1.1.1. appendChild()方法

  该方法添加的元素位于父元素的末尾,使用方法:
parentNode.appenChild(NewNode) // parentNode是需要添加元素的容器,NewNode是新添加的元素
  创建一个li元素并添加到ul的末尾:

       var ulDom = document.getElementById("ul_id");
                var htmlStr =
                    //`<div class="member-li-layout" οnclick="clickFunc(${index})">
                    `<div class="member-li-layout">
                           <div class="member-item-layout">
                                 <span class="member-item-layout">姓名:</span>
                                 <span class="member-item-content">
                                       ${item.name}
                                 </span>
                           </div>   
                           <div class="member-item-layout">
                                 <span class="userName">班级:</span>
                                 <span class="member-item-content">
                                      ${item.classroom}
                                 </span>
                           </div>                     
                     </div>`;
                var liDom = document.createElement("li");
                liDom.setAttribute('class', `member-li-body`);
                liDom.setAttribute('data-name', item.name);
                liDom.innerHTML = htmlStr;
                ulDom.appendChild(liDom);

1.1.2. insertBefore()方法

  该方法可以将元素添加到指定位置,使用方法:
// parentNode是需要添加元素的容器,NewNode是新添加的元素, beforeNode是添加在哪个元素之前
  parentNode.insertBefore(newNode, beforeNode)
  创建一个li元素并添加在第二个li元素之前:

const ulNode = document.querySelectorAll('.list')[0],
	  liNodes = document.querySelectorAll('.item'),
	  liNode = document.createElement('li');
liNode.className = 'item';
liNode.innerHTML = 4;
ulNode.insertBefore(liNode, liNodes[1]);

1.2. 删除DOM元素

1.2.1. removeChid()方法

  该方法用于删除指定元素,使用方法:
  parentNode.removeChild(removeNode) // parentNode是需要删除元素的容器,removeNode是要删除的元素

   // //方法一:删除自身
    // var box=document.getElementById("ul_id");
    // box.remove();
    //方法二:删除子节点
    var ulDom = document.getElementById("ul_id");
    var lis = ulDom.querySelectorAll('li');
    for (i = lis.length; i > 0; i--) {
        ulDom.removeChild(lis[i - 1]);
    };

1.2.2. remove()方法

   // //方法一:删除自身
    /var box=document.getElementById("ul_id");
    // box.remove();

1.3. 示例代码

1.3.1. page-dom.html

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>点赞</title>
    <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <script type="text/javascript" src="../static/js/init-rem.js"></script>
    <link rel="stylesheet" type="text/css" href="../static/css/mui.min.css"/>
    <script type="text/javascript" src="../static/js/mui.min.js"></script>
    <link rel="stylesheet" type="text/css" href="../static/css/base.css"/>
    <link rel="stylesheet" type="text/css" href="../css/page-dom.css"/>
    <script type="text/javascript" src="../static/js/jquery-3.1.1.min.js"></script>
</head>
<body>
<section class="base-title-layout2">
    <div class="base-title-bar2">
         <span class="base-title-back" onclick="history.go(-1)">
             <img src="../img/icon/icon_back.png"/>
         </span>
        <h1>dom</h1>
        <a class="base-title-back"></a>
    </div>
</section>
<div class="base-page-layout">
    <ul id="ul_id" class="member-ul-body"></ul>
</div>
<script type="text/javascript" src="../js/page-dom.js"></script>
</body>
</html>

1.3.2. page-dom.css


.member-ul-body {
    overflow-x: hidden;
}
.member-ul-body li {

    border-radius: 0.2rem;
    margin: 0.2rem 0.01rem;
    padding: 0.2rem 0.2rem;
}
.member-li-body  {
    background: #fff;
}
.member-li-layout {
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.member-item-layout {
    display: flex;
    flex-direction: row;
    align-items: center;
    margin: 0.05rem 0;
}
.member-item-title {
    color: black;
    text-align: center;
    font-size: 0.3rem;
}

.member-item-content {
    color: #666666;
    text-align: center;
    font-size: 0.3rem;
}
.member-bottom-layout {
    display: flex;
    display: -webkit-flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    -webkit-align-items: center;
    padding: 0 0.3rem;
}


1.3.3. page-dom.js

let myArr
$(function () {
    getData()
});

function getData() {
    //获取json中数据
    $.getJSON(`../json/domJson.json`,
        function (res) {
            myArr = res.rows;
            myArr.forEach(function (item, index) {
                var ulDom = document.getElementById("ul_id");
                var htmlStr =
                    //`<div class="member-li-layout" οnclick="clickFunc(${index})">
                    `<div class="member-li-layout">
                           <div class="member-item-layout">
                                 <span class="member-item-layout">姓名:</span>
                                 <span class="member-item-content">
                                       ${item.name}
                                 </span>
                           </div>   
                           <div class="member-item-layout">
                                 <span class="userName">班级:</span>
                                 <span class="member-item-content">
                                      ${item.classroom}
                                 </span>
                           </div>                     
                     </div>`;
                var liDom = document.createElement("li");
                liDom.setAttribute('class', `member-li-body`);
                liDom.setAttribute('data-name', item.name);
                liDom.innerHTML = htmlStr;
                ulDom.appendChild(liDom);
            })
            //详情
            goDetail()
            //清除数据
            //clearData()
        })
}

/**
 * 点击item
 */
function clickFunc(index) {
    console.log("name:" + myArr[index].name)
}
/**
 * 清除数据
 */
function clearData() {
    // //方法一:删除自身
    // var box=document.getElementById("ul_id");
    // box.remove();
    //方法二:删除子节点
    var ulDom = document.getElementById("ul_id");
    var lis = ulDom.querySelectorAll('li');
    for (i = lis.length; i > 0; i--) {
        ulDom.removeChild(lis[i - 1]);
    }
}

/**
 * 详情
 */
function goDetail() {
    var lis = document.querySelector('#ul_id')
        .querySelectorAll('li');
    for (i = 0; i < lis.length; i++) {
        //点击item
        lis[i].addEventListener('tap', function () {
            var name = $(this).attr('data-name');
            console.log("name:" + name)
        });
    }
}

1.3.4. domJson.json

{
  "msg": "信息",
  "code": 200,
  "rows": [
    {
      "name": "云兮",
      "classroom": "一年级4班"
    },
    {
      "name": "晨曦",
      "classroom": "二年级1班"
    },
    {
      "name": "佳宁",
      "classroom": "三班2班"
    }
  ]
}


1.4. 效果图

在这里插入图片描述

相关推荐

  1. js获取dom元素的宽度数值

    2024-03-10 08:00:04       38 阅读
  2. React中如何动态添加删除元素

    2024-03-10 08:00:04       34 阅读
  3. js如何添加元素到数组中

    2024-03-10 08:00:04       7 阅读
  4. js_BOM&Dom&Ajax

    2024-03-10 08:00:04       35 阅读
  5. jsdom学习

    2024-03-10 08:00:04       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-10 08:00:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-10 08:00:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-10 08:00:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-10 08:00:04       20 阅读

热门阅读

  1. 基于MapReduce的汽车数据清洗与统计案例

    2024-03-10 08:00:04       20 阅读
  2. wpf中的Border和Background

    2024-03-10 08:00:04       19 阅读
  3. Neo4J图数据库入门示例

    2024-03-10 08:00:04       24 阅读
  4. SQL 注入攻击 - insert注入

    2024-03-10 08:00:04       29 阅读
  5. SQL之常用字符串函数

    2024-03-10 08:00:04       23 阅读
  6. Apache HBase

    2024-03-10 08:00:04       24 阅读
  7. 微信小程序提交成功设置提示

    2024-03-10 08:00:04       21 阅读
  8. 机器学习是什么

    2024-03-10 08:00:04       22 阅读
  9. Chapter 8 - 23. Congestion Management in TCP Storage Networks

    2024-03-10 08:00:04       24 阅读
  10. 机器学习(2_1)经验误差,拟合度,评估方法

    2024-03-10 08:00:04       25 阅读
  11. BJFU|计算机网络缩写对照表

    2024-03-10 08:00:04       20 阅读