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';
- } //这一句是各种浏览器的兼容,xiariboke.net
- }
- </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';
- }//xiariboke.net
- }
- </script>
- </head>
- <body>
- <ul id="ul1">
- <li>1</li>
- <li>2</li>
- <li>3</li>
- </ul>
- </body>
- </html>
其中将 firstChild 更改为 lastChild 之后,最后一个 li 的背景会变成红色,自己在 html 里面运行一下看看显示结果吧,重点是各个浏览器下面的兼容。
jQuery用多了,原生JS都不怎么会写了
还没学到 jquery,不知道跟JS有什么本质区别。