JavaScript——节点常用属性
akom7972
8年前
<h3>0.前言</h3> <p>今天来说一下关于节点一些的常用方法。</p> <pre> <code class="language-javascript"><!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>节点常用属性</title> <style type="text/css"> #box1{ width: 400px; height: 200px;background-color: red; } #box2{ width: 200px;height: 200px;background-color: green; } #box3{ width: 200px;height: 200px;background-color: yellow; } </style> </head> <body> <div id="box1"><p>我是第一个P</p> <p>我是第二个P</p> <p>我是第三个P</p> <p>我是第四个P</p> <div> <p>我是第1个P</p> <p>我是第2个P</p> <p>我是第3个P</p> <p>我是第4个P</p> </div> </div> <div id="box2"></div> <div id="box3"></div> <input id="put" type="text" name="in" placeholder="sunck is a good man"> <script type="text/javascript"> </script> </body> </html></code></pre> <p>效果:</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/d214c83e1f6f8b791b420599cdc452f9.png"></p> <p>捕获.PNG</p> <h3>1.正文</h3> <p>在学习节点的常用属性之前,我要了解一下节点的公有属性: <strong>nodeName</strong> 、 <strong>nodeType</strong> 、 <strong>nodeValue</strong></p> <p>添加如下代码:</p> <pre> <code class="language-javascript">//节点共有的属性:nodeName、nodeType、nodeValue var jsDivBox1 = document.getElementById("box1"); console.log(jsDivBox1); console.log(jsDivBox1.nodeName); console.log(jsDivBox1.nodeType); console.log(jsDivBox1.nodeValue);</code></pre> <p>运行结果:</p> <p><img src="https://simg.open-open.com/show/2b70bec16d662cd7e3d57893502a2810.png"></p> <p>捕获.PNG</p> <p>可以发现,nodeName打印出来的是DIV标签,nodeType打印出来的是number类型的数值“1”,nodeValue打印出来的事null空值。原因看下表:</p> <p><img src="https://simg.open-open.com/show/b148658c4b5523f8c693285d1117e2eb.png"></p> <p>节点属性nodeName、nodeType、nodeValue.png</p> <p>看见不同的节点打印出来的公有属性不同,利用这一点可以分辨出不同的节点</p> <p>节点层次关系属性</p> <p>(1)获取当前元素节点的所有的子节点——childNodes</p> <pre> <code class="language-javascript">var allChildsNodeArr = jsDivBox1.childNodes; console.log(allChildsNodeArr); for (var i = 0; i < allChildsNodeArr.length; i++) { if (allChildsNodeArr[i].nodeType == 1) { console.log(allChildsNodeArr[i]); } }</code></pre> <p>运行结果:</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/1e70889e2f29584e96b66629d78be7e1.png"></p> <p>捕获.PNG</p> <p>可见利用nodeType只打印出div标签的元素节点。</p> <p>(2)获取当前元素节点的第一个子节点——firstChild</p> <pre> <code class="language-javascript">var firstNode = jsDivBox1.firstChild; console.log(firstNode);</code></pre> <p>运行结果:</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/def509133b9446ae66d5f96c4bf9e8e8.png"></p> <p>捕获.PNG</p> <p>(3)获取当前节点的最后一个子节点——lastChild</p> <pre> <code class="language-javascript">var lastNode = jsDivBox1.lastChild; console.log(lastNode);</code></pre> <p>结果:</p> <p><img src="https://simg.open-open.com/show/6c0a23d62724f9096ab88c7e824ec4be.png"></p> <p>捕获.PNG</p> <p>为什么打印出的是 <em>#text</em> ?因为其中崔仔换行符,他会把换行符也给打印出来的,所以出现上述结果,放在同一行即可。</p> <p>(4)获取该节点的文档的根节点,相当于document——ownerDocument</p> <pre> <code class="language-javascript">var rootNode = jsDivBox1.ownerDocument; console.log(rootNode);</code></pre> <p>结果:</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/61f4dc01bfedb7646665377d0dc5441a.png"></p> <p>捕获.PNG</p> <p>可见吧整个文档给打印出来了。</p> <p>(5)获取当前节点的父节点——parentNode</p> <pre> <code class="language-javascript">var fatherNode = jsDivBox1.parentNode; console.log(fatherNode);</code></pre> <p>结果:</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/e46332de64bc6264b6860a4ccd4c187f.png"></p> <p>捕获.PNG</p> <p>(6)获取当前节点的前一个同级节点——previousSibling</p> <pre> <code class="language-javascript">var p1 = p2.previousSibling; console.log(p1);</code></pre> <p><img src="https://simg.open-open.com/show/e5c1d7017401aa9276a56da2d16a25c4.png"></p> <p>捕获.PNG</p> <p>(7)获取当前节点的后一个同级节点——nextSibling</p> <pre> <code class="language-javascript">var p3 = p2.nextSibling; console.log(p3);</code></pre> <p>结果:</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/2bbbd5e1eac91066d2591cc785eeb525.png"></p> <p>捕获.PNG</p> <p>(8)获取当前节点的所有的属性节点——attributes</p> <pre> <code class="language-javascript">var jsInput = document.getElementById("put"); var allAttributesArr = jsInput.attributes; console.log(allAttributesArr);</code></pre> <p>结果:</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/aa00c28cf051b0b758cb480be8a397f8.png"></p> <p>捕获.PNG</p> <p>打印出来的是一个数组,记得是谁当前标签的属性。</p> <h3>2.总结</h3> <p>终于写完了,好累,不想说话了!!!!</p> <p> </p> <p>来自:http://www.jianshu.com/p/cb745573b357</p> <p> </p>