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

JavaScript-DOM节点的相关操作

目录

1.获得DOM节点

2.更新DOM节点

3.删除DOM节点

4.创建和插入DOM节点


1.获得DOM节点

DOM:文档对象模型

浏览器网页就是一个 Dom 树形结构!

  • 更新:更新Dom节点
  • 遍历Dom节点:得到Dom节点
  • 删除:删除一个Dom节点
  • 添加:添加一个新的节点

要操作一个 Dom 节点,就必须要先获得这个 Dom 节点

获得Dom节点:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="father">
    <h1>标题一</h1>
    <p id="p1">p1</p>
    <p class="p2">p2</p>
</div>

<script>
<!--    对应css选择器-->
    var h1=document.getElementsByTagName('h1');
    var p1=document.getElementById('p1');
    var p2=document.getElementsByClassName('p2');
    var father=document.getElementById('father');
    //获取父节点下的所有子节点
    var children=father.children;
    // father.firstChild 获取第一个节点
    // father.lastChild 获取最后一个节点
</script>
</body>
</html>

这是原生代码,之后我们尽量都使用 jQuery();

2.更新DOM节点

先拿到 id1

<body>
<div id="id1">
</div>
<script>
  var id1=document.getElementById('id1');
</script>
</body>

更新 id1 

innerText:修改文本的值

innerHTML :可以解析HTML文本标签

操作js

3.删除DOM节点

删除节点的步骤:先获取父节点,再通过父节点删除自己

删掉节点 p1:

<div id="father">
    <h1>标题一</h1>
    <p id="p1">p1</p>
    <p class="p2">p2</p>
</div>

<script>
    var self=document.getElementById('p1');
    var father=p1.parentElement;
    father.removeChild(selt);
</script>

 注意:删除多个节点的时候,children 是在时刻变化的,删除节点的时候一定要注意。

4.创建和插入DOM节点

我们获得了某个 Dom 节点,假设这个 Dom 节点是空的,我们通过 innerHTML 就可以增加一个元素了,但是这个 Dom 节点已经存在元素了,我们就不能这么干了!会产生覆盖

追加append

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p id="js">JavaScript</p>
<div id="list">
    <p id="me">JavaME</p>
    <p id="ee">JavaEE</p>
    <p id="se">JavaSE</p>
</div>
<script>
    var js = document.getElementById('js');
    var list = document.getElementById('list');

</script>
</body>
</html>

 另一种方式,创建一个新的标签实现插入:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p id="js">JavaScript</p>
<div id="list">
    <p id="me">JavaME</p>
    <p id="ee">JavaEE</p>
    <p id="se">JavaSE</p>
</div>
<script>
    var js = document.getElementById('js');//已存在的节点
    var list = document.getElementById('list');
    //通过js创建一个新的节点
    var newP=document.createElement('p');//创建一个p标签
    //设置id
    newP.id='newP';
    newP.innerText='Hello,biubiu';
    list.appendChild(newP)
</script>
</body>
</html>

 创建一个标签节点(通过这个属性,可以设置任意的值)

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="" type="text/css">
    <script type="text/javascript" src=""></script>
</head>
<body>
<p id="js">JavaScript</p>
<div id="list">
    <p id="me">JavaME</p>
    <p id="ee">JavaEE</p>
    <p id="se">JavaSE</p>
</div>
<script>
    var js = document.getElementById('js');//已存在的节点
    var list = document.getElementById('list');
    //通过js创建一个新的节点
    var newP=document.createElement('p');//创建一个p标签
    //newP.setAttribute('id','newP');
    //设置id
    newP.id='newP';
    newP.innerText='Hello,biubiu';
    list.appendChild(newP);
    //创建一个标签节点
    var myScript = document.createElement('script');
    myScript.setAttribute('type','text/javascript');
</script>
</body>
</html>

创建一个标签更改网页背景:

    //可以创建一个style标签
    var myStyle = document.createElement('style');
    myStyle.setAttribute('type','text/css');
    myStyle.innerHTML = 'body{background-color:chartreuse;}';//设置标签内容
    document.getElementsByTagName('head')[0].appendChild(myStyle);

插在前面 insertBefore

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="" type="text/css">
    <script type="text/javascript" src=""></script>
</head>
<body>
<p id="js">JavaScript</p>
<div id="list">
    <p id="me">JavaME</p>
    <p id="ee">JavaEE</p>
    <p id="se">JavaSE</p>
</div>
<script>
    var ee = document.getElementById('ee');
    var js = document.getElementById('js');
    var list = document.getElementById('list');
//要包含的节点.insertBefore(newNode,targetNode)
    list.insertBefore(js,ee);
</script>
</body>
</html>

相关文章:

  • 猿创征文|HCIE-Security Day49:AC准入控制SACG
  • 移动Web第二天 4 空间转换 5 动画
  • LeetCode646-最长数队链
  • 力扣:23,-合并K个升序链表
  • 移动Web第三天 1 移动端特点 2 百分比布局 3 Flex布局
  • vue中用ref实现父子组件、孙组件、兄弟组件、非亲子孙组件互相调用的方法
  • 【信号去噪】基于鲸鱼算法优化VMD实现信号去噪附matlab代码
  • git开发分支管理
  • 啊哈,一道有趣的Go并发题
  • [编程题]数据库连接池 - 牛客网题解
  • 线性回归模型(OLS)3
  • 如何利用腾讯云轻量应用服务器五分钟搭建一个WordPress博客?
  • 从外到内理解c++引用
  • [极客大挑战 2019]BabySQL
  • vue3+vite+windicss+element-plus+axios+router+cookies 搭建
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • ECMAScript6(0):ES6简明参考手册
  • ECS应用管理最佳实践
  • Node + FFmpeg 实现Canvas动画导出视频
  • oschina
  • Puppeteer:浏览器控制器
  • Python进阶细节
  • Vue.js源码(2):初探List Rendering
  • vue-router 实现分析
  • 悄悄地说一个bug
  • 十年未变!安全,谁之责?(下)
  • 实现菜单下拉伸展折叠效果demo
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 无服务器化是企业 IT 架构的未来吗?
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 06-01 点餐小程序前台界面搭建
  • 如何在招聘中考核.NET架构师
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • # 数论-逆元
  • #### go map 底层结构 ####
  • #define 用法
  • (2)Java 简介
  • (Forward) Music Player: From UI Proposal to Code
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (译)2019年前端性能优化清单 — 下篇
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .Family_物联网
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET 回调、接口回调、 委托
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [100天算法】-不同路径 III(day 73)
  • [CERC2017]Cumulative Code
  • [ChromeApp]指南!让你的谷歌浏览器好用十倍!
  • [CTO札记]盛大文学公司名称对联