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>