A-A+
	js 子节点 childNodes 学习笔记
学习了 js dom 操作,js 的学习就又上了一个层次,今天学到了 dom 操作各个节点,比如涉及到子节点,父节点,相对节点,等等,当然还有较为复杂的兼容问题了,感觉好麻烦的说,暂时先把今天学到的内容做个笔记了,还有关于兼容处理方面的,或许将来能用得到。
js 子节点 childNodes 学习笔记
首先学到的是子节点,是获取某个元素下面的元素,下面的实例是给一个元素的子节点添加上一个红包的背景,实例如下:
- <!doctype html>
 - <html>
 - <head>
 - <meta charset="utf-8">
 - <title>js 子节点 childNodes 学习笔记</title>
 - <script>
 - window.onload = function(){
 - var oU1 = document.getElementById('u1');
 - //alert(oUL.childNodes.length); //有几个子节点
 - /*
 - for(var i=0;i<oU1.childNodes.length;i++){
 - if(oU1.childNodes[i].nodeType == 1){
 - oU1.style.background = 'red';
 - }
 - //alert(oU1.childNodes[i].nodeType);
 - } // 使用 nodeType解决浏览器兼容问题
 - */
 - for(var i=0;i<oU1.childNodes.length;i++){
 - oU1.children[i].style.background = 'red';
 - } //这一句是各种浏览器的兼容,xiaohuboke.com
 - }
 - </script>
 - </head>
 - <body>
 - <ul id="u1">
 - <li></li>
 - <li></li>
 - <li></li>
 - </ul>
 - </body>
 - </html>
 
js 父节点的应用
js 父节点就是给当前节点的父节点的操作,想要获取当前节点的父节点,直接 oUl.firstChild 就OK了,在教程上面学到的这个小实例蛮有意思的,就是在 html 添加几个 LI 的样式列表,然后里面添加上文字和链接,然后点击链接的时候,当前节点就会消失掉,实例代码如下:
- <!doctype html>
 - <html>
 - <head>
 - <meta charset="utf-8">
 - <title>js 父节点的应用</title>
 - <script>
 - window.onload = function()
 - {
 - var oA = document.getElementsByTagName('a');
 - for(var i=0;i<oA.length;i++){
 - oA[i].onclick = function(){
 - this.parentNode.style.display = 'none';
 - }
 - }
 - }
 - </script>
 - </head>
 - <body>
 - <ul id="U1">
 - <li>小虎博客隐藏01 <a href="javascrip:;">隐藏</a></li>
 - <li>小虎博客隐藏02 <a href="javascrip:;">隐藏</a></li>
 - <li>小虎博客隐藏03 <a href="javascrip:;">隐藏</a></li>
 - <li>小虎博客隐藏04 <a href="javascrip:;">隐藏</a></li>
 - <li>小虎博客隐藏05 <a href="javascrip:;">隐藏</a></li>
 - </ul>
 - </body>
 - </html>
 
实例图片如下所示:
当点击隐藏按钮的时候,当前行就会隐藏掉,很好玩,也可以应用到网站上面去。
firstChild 当前节点的第一个子节点的引用.
firstChild 当前节点的第一个子节点,跟第一个例子差不多,这个只是操作子节点的第一个,相对应的还有 lastChild,好了,当然这个兼容的问题也是蛮大的,还是以第一个填充背景的实例一样,代码如下:
- <!doctype html>
 - <html>
 - <head>
 - <meta charset="utf-8">
 - <title>firstChild 当前节点的第一个子节点的引用</title>
 - <script>
 - window.onload = function(){
 - var oUl = document.getElementById('ul1');
 - if(oUl.firstElementChild){
 - //低版本的IE6-8不能识别标记firstElementChild,但可以识别firstChild
 - oUl.firstElementChild.style.background = 'red';
 - }else{
 - //高版本的浏览器能识别的标记firstElementChild,而不能识别firstChild
 - oUl.firstChild.style.background = 'red';
 - }//xiaohuboke.com
 - }
 - </script>
 - </head>
 - <body>
 - <ul id="ul1">
 - <li>1</li>
 - <li>2</li>
 - <li>3</li>
 - </ul>
 - </body>
 - </html>
 
其中将 firstChild 更改为 lastChild 之后,最后一个 li 的背景会变成红色,自己在 html 里面运行一下看看显示结果吧,重点是各个浏览器下面的兼容。
