HTML节点操作
HTML
节点的基本操作,添加节点,替换节点,删除节点,绑定事件,访问子节点,访问父节点,访问兄弟节点。
文档对象模型Document Object Model
,简称DOM
,是W3C
组织推荐的处理可扩展标记语言XML
的标准编程接口,是一种与平台和语言无关的应用程序接口API
。
根据W3C
的HTML DOM
标准,HTML
文档中的所有内容都是节点:整个文档是一个文档节点,每个HTML
元素是元素节点,HTML
元素内的文本是文本节点,每个HTML
属性是属性节点,注释是注释节点。HTML DOM
将HTML
文档视作树结构。这种结构被称为节点树:HTML DOM Tree
实例。
添加节点
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <div id="t1"></div>
<script type="text/javascript"> var d1 = document.createElement("div"); d1.style.color = "blue"; d1.setAttribute("id","d1"); d1.innerText="innerText"; var tn1=document.createTextNode(" CreateTextNode"); d1.appendChild(tn1); var node = document.getElementById("t1").appendChild(d1);
var b1 = document.createElement("div"); b1.innerText="添加到d1前"; document.getElementById("t1").insertBefore(b1,document.getElementById("d1")); </script>
|
替换节点
1 2 3 4 5 6 7 8 9 10
| <div id="t2"> <div>被替换的节点</div> </div>
<script type="text/javascript"> var d2 = document.createElement("div"); d2.style.color = "green"; d2.innerText="被我替换了"; document.getElementById("t2").replaceChild(d2,document.querySelector("#t2 > div:first-child")); </script>
|
删除节点
1 2 3 4 5 6 7 8
| <div id="t3"> <div>下边的兄弟被删除了</div> <div>我要被删除了</div> </div>
<script type="text/javascript"> document.getElementById("t3").removeChild(document.querySelector("#t3 > div:nth-child(2)")); </script>
|
绑定事件
1 2 3 4 5 6 7 8 9
| <div id="t4" style="color: red;">点我</div>
<script type="text/javascript"> document.getElementById("t4").addEventListener('click',(e) => { alert("点击事件"); }) </script>
|
访问子节点
1 2 3 4 5 6 7 8 9 10 11 12 13
| <div id="t5" style="color: grey;"> <div>1</div> <div>2</div> </div>
<script type="text/javascript"> console.log(document.getElementById("t5").childNodes); console.log(document.getElementById("t5").childElementCount); console.log( document.getElementById("t5").firstChild); console.log(document.getElementById("t5").firstElementChild); console.log(document.getElementById("t5").lastChild); console.log(document.getElementById("t5").lastElementChild); </script>
|
访问父节点
1 2 3 4 5 6 7
| <div style="color: yellow;"> <div id="t6">1</div> </div>
<script type="text/javascript"> console.log(document.getElementById("t6").parentNode); </script>
|
访问兄弟节点
1 2 3 4 5 6 7 8
| <div style="color: brown;"><div>1</div><div id="t7">2</div><div>3</div></div>
<script type="text/javascript"> console.log(document.getElementById("t7").previousSibling); console.log(document.getElementById("t7").previousElementSibling); console.log(document.getElementById("t7").nextSibling); console.log(document.getElementById("t7").nextElementSibling); </script>
|
代码示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| <!DOCTYPE html> <html> <head> <title>HTML节点操作</title> <meta charset="utf-8"> </head> <body>
<div id="t1"></div>
<script type="text/javascript"> var d1 = document.createElement("div"); d1.style.color = "blue"; d1.setAttribute("id","d1"); d1.innerText="innerText"; var tn1=document.createTextNode(" CreateTextNode"); d1.appendChild(tn1); var node = document.getElementById("t1").appendChild(d1);
var b1 = document.createElement("div"); b1.innerText="添加到d1前"; document.getElementById("t1").insertBefore(b1,document.getElementById("d1")); </script>
<div id="t2"> <div>被替换的节点</div> </div>
<script type="text/javascript"> var d2 = document.createElement("div"); d2.style.color = "green"; d2.innerText="被我替换了"; document.getElementById("t2").replaceChild(d2,document.querySelector("#t2 > div:first-child")); </script>
<div id="t3"> <div>下边的兄弟被删除了</div> <div>我要被删除了</div> </div>
<script type="text/javascript"> document.getElementById("t3").removeChild(document.querySelector("#t3 > div:nth-child(2)")); </script>
<div id="t4" style="color: red;">点我</div>
<script type="text/javascript"> document.getElementById("t4").addEventListener('click',(e) => { alert("点击事件"); }) </script>
<div id="t5" style="color: grey;"> <div>1</div> <div>2</div> </div>
<script type="text/javascript"> console.log(document.getElementById("t5").childNodes); console.log(document.getElementById("t5").childElementCount); console.log( document.getElementById("t5").firstChild); console.log(document.getElementById("t5").firstElementChild); console.log(document.getElementById("t5").lastChild); console.log(document.getElementById("t5").lastElementChild); </script>
<div style="color: yellow;"> <div id="t6">1</div> </div>
<script type="text/javascript"> console.log(document.getElementById("t6").parentNode); </script>
<div style="color: brown;"><div>1</div><div id="t7">2</div><div>3</div></div>
<script type="text/javascript"> console.log(document.getElementById("t7").previousSibling); console.log(document.getElementById("t7").previousElementSibling); console.log(document.getElementById("t7").nextSibling); console.log(document.getElementById("t7").nextElementSibling); </script> </body> </html>
|