当前位置: 首页 > news >正文

js中的DOM节点操作---增删改查

1.查找

DOM1:getElementById(),getElementsByTagName()

DOM扩展:querySelector()(返回第一个匹配的元素),querySelectorAll()(返回全部匹配的元素)

HTML5:getElementsByClassName()

 

2.插入

appendChild():末尾插入

insertBefore():特定位置插入

 

3.替换

replaceChild():接受两个参数,第一个为要插入的节点,第二个为要替换的节点

 

4.删除

removeChild()

 

实例代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Dom节点操作</title>

</head>
<body>
    
    <ul id="list"><li>1</li><li>2</li><li>3</li></ul>

    <button id="add">插入</button>
    <button id="replace">替换</button>
    <button id="remove">删除</button>

    <script >
        var list=document.getElementById('list');
        var add=document.querySelector('#add');
        var replace=document.querySelector('#replace');
        var remove=document.querySelector('#remove');

        var li=document.createElement('li');
        li.innerHTML='hello';

        function addNode(){
            //尾插
            //list.appendChild(li)
            //任意位置插
            list.insertBefore(li,list.childNodes[2])
        }
        function replaceNode(){

            //替换任意位置,要替换第一个或者最后一个只需将第二个参数改为list.firstChild / lastChild
            list.replaceChild(li,list.childNodes[1])
        }
        function removeNode(){
            //移除首/尾元素
            //list.removeChild(list.firstChild)
            // list.removeChild(list.lastChild)
            //移除任意位置上的元素
            list.removeChild(list.childNodes[1])
        }

        add.addEventListener('click',addNode);
        replace.addEventListener('click',replaceNode);
        remove.addEventListener('click',removeNode);
        
    </script>
</body>
</html>

运行视图

 

转载于:https://www.cnblogs.com/xingguozhiming/p/8647804.html

相关文章:

  • 线程同步(3个条件)
  • 类的组合
  • 模块------计算对数
  • 安装vue开发环境→安装淘宝镜像的时候报错
  • Python生成随机验证码
  • Java执行JavaScript代码
  • c#数字图像处理(十一)图像旋转
  • C语言——第二次作业(2)
  • Mark
  • winform httpclient 多文件上传
  • 一维数组高效率解决杨辉三角
  • 使用 Except 和 Intersect
  • ES6 使用forEach遍历数组
  • 初学MySQL基础知识笔记--02
  • Shell报错bash^M /bin/bash^M: bad interpreter: No such file or directory
  • AHK 中 = 和 == 等比较运算符的用法
  • Android Volley源码解析
  • Java多线程(4):使用线程池执行定时任务
  • Laravel Mix运行时关于es2015报错解决方案
  • laravel 用artisan创建自己的模板
  • Linux各目录及每个目录的详细介绍
  • Netty源码解析1-Buffer
  • Python学习之路13-记分
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Vue 动态创建 component
  • 记一次删除Git记录中的大文件的过程
  • 为视图添加丝滑的水波纹
  • 学习使用ExpressJS 4.0中的新Router
  • 用简单代码看卷积组块发展
  • 终端用户监控:真实用户监控还是模拟监控?
  • ​人工智能书单(数学基础篇)
  • ​如何防止网络攻击?
  • #git 撤消对文件的更改
  • #QT(一种朴素的计算器实现方法)
  • #数学建模# 线性规划问题的Matlab求解
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (42)STM32——LCD显示屏实验笔记
  • (BFS)hdoj2377-Bus Pass
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (论文阅读11/100)Fast R-CNN
  • (十三)Flask之特殊装饰器详解
  • (一) storm的集群安装与配置
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)编辑寄语:因为爱心,所以美丽
  • .NET CLR Hosting 简介
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET/C# 使用反射注册事件
  • .NET框架设计—常被忽视的C#设计技巧