目录
DOM:文档对象模型
浏览器网页就是一个 Dom 树形结构!
要操作一个 Dom 节点,就必须要先获得这个 Dom 节点
获得Dom节点:
- html>
- <html lang="en" xmlns:th="http://www.thymeleaf.org">
- <head>
- <meta charset="UTF-8">
- <title>Titletitle>
- head>
- <body>
- <div id="father">
- <h1>标题一h1>
- <p id="p1">p1p>
- <p class="p2">p2p>
- div>
-
- <script>
- 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();
先拿到 id1
- <body>
- <div id="id1">
- div>
- <script>
- var id1=document.getElementById('id1');
- script>
- body>
更新 id1
innerText:修改文本的值
innerHTML :可以解析HTML文本标签
操作js
删除节点的步骤:先获取父节点,再通过父节点删除自己
删掉节点 p1:
- <div id="father">
- <h1>标题一h1>
- <p id="p1">p1p>
- <p class="p2">p2p>
- div>
-
- <script>
- var self=document.getElementById('p1');
- var father=p1.parentElement;
- father.removeChild(selt);
- script>
注意:删除多个节点的时候,children 是在时刻变化的,删除节点的时候一定要注意。
我们获得了某个 Dom 节点,假设这个 Dom 节点是空的,我们通过 innerHTML 就可以增加一个元素了,但是这个 Dom 节点已经存在元素了,我们就不能这么干了!会产生覆盖
追加append
- html>
- <html lang="en" xmlns:th="http://www.thymeleaf.org">
- <head>
- <meta charset="UTF-8">
- <title>Titletitle>
- head>
- <body>
- <p id="js">JavaScriptp>
- <div id="list">
- <p id="me">JavaMEp>
- <p id="ee">JavaEEp>
- <p id="se">JavaSEp>
- div>
- <script>
- var js = document.getElementById('js');
- var list = document.getElementById('list');
-
- script>
- body>
- html>
另一种方式,创建一个新的标签实现插入:
- html>
- <html lang="en" xmlns:th="http://www.thymeleaf.org">
- <head>
- <meta charset="UTF-8">
- <title>Titletitle>
- head>
- <body>
- <p id="js">JavaScriptp>
- <div id="list">
- <p id="me">JavaMEp>
- <p id="ee">JavaEEp>
- <p id="se">JavaSEp>
- 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>
创建一个标签节点(通过这个属性,可以设置任意的值)
- html>
- <html lang="en" xmlns:th="http://www.thymeleaf.org">
- <head>
- <meta charset="UTF-8">
- <title>Titletitle>
- <link rel="stylesheet" href="" type="text/css">
- <script type="text/javascript" src="">script>
- head>
- <body>
- <p id="js">JavaScriptp>
- <div id="list">
- <p id="me">JavaMEp>
- <p id="ee">JavaEEp>
- <p id="se">JavaSEp>
- 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
- html>
- <html lang="en" xmlns:th="http://www.thymeleaf.org">
- <head>
- <meta charset="UTF-8">
- <title>Titletitle>
- <link rel="stylesheet" href="" type="text/css">
- <script type="text/javascript" src="">script>
- head>
- <body>
- <p id="js">JavaScriptp>
- <div id="list">
- <p id="me">JavaMEp>
- <p id="ee">JavaEEp>
- <p id="se">JavaSEp>
- 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>