DOM基础实例

简介:

DOM基础实例


一.什么是DOM节点?

说白了标签元素和节点都一样只是在不同的地方叫法不同

css里面   叫标签

JS里面    叫元素

DOM里面叫节点

 

浏览器支持情况:现在主流浏览器大概就是:

IE                      10%

Chrome               60%

FF                     90%

 

 

(1)         DOM节点

(2)         ChildNodes(用来获取子节点,这个获取的是一个数组)    nodeType节点类型

ChildNodes例子

<!DOCTYPE html>

<html>

   <head>

     <meta charset="UTF-8">

     <title></title>

     <script>

        window.onload=function()

        {

           var oUl=document.getElementById('ul1');

           alert(oUl.childNodes.length);

        }

     </script>

   </head>

   <body>

     <ul id="ul1">

        <li></li>

        <li></li

     </ul>

   </body>

</html>

我写了一个ul里面有2li标签ChildNodes来获取ul的子节点,其实都知道 ul的子节点是li ,并且有2个,但是你用某些浏览器打开应该会出现5个子节点,这多出来的3个其实是3个文本节点,什么是文本节点其实就是空白,你自己算一下,ul里面先是空白,然后是li,再是空白,再是li,然后再是空白,这样就是5个,这就是浏览器的兼容问题!

 

下面来解决兼容问题,然后就用到nodeType了,nodeType是获取节点的类型

 

获取节点类型的例子:借用上面的代码写一个for循环

<script>

        window.onload=function()

        {

           var oUl=document.getElementById('ul1');

           for(var i=0;i<oUl.childNodes.length;i++)

           {

           alert(oUl.childNodes[i].nodeType)

           }

        }

     </script>

结果会报出来3现在说明3代表文本节点,1代表元素节点

nodeType==3 è代表文本节点

nodeType==1 è代表元素节点

 

大部分浏览器兼容问题都是用if解决

<script>

        window.onload=function()

        {

           var oUl=document.getElementById('ul1');

          

           //alert(oUl.childNodes.length)

           for(var i=0;i<oUl.childNodes.length;i++)

           {

           alert(oUl.childNodes[i].nodeType)

           if(oUl.childNodes[i].nodeType==1)

           {

             oUl.childNodes[i].style.background='red';            

           }

           }

        }

     </


 

本文转自 新网学会 51CTO博客,原文链接:http://blog.51cto.com/xwxhvip/1980413 ,如需转载请自行联系原作者

相关文章
|
22天前
|
JavaScript 前端开发
react学习(3)创建虚拟dom的两种方式
react学习(3)创建虚拟dom的两种方式
163 67
|
8天前
|
XML JavaScript 前端开发
学习react基础(1)_虚拟dom、diff算法、函数和class创建组件
本文介绍了React的核心概念,包括虚拟DOM、Diff算法以及如何通过函数和类创建React组件。
15 2
|
2月前
|
JavaScript 前端开发 API
区分 DOM 与虚拟 DOM
【8月更文挑战第24天】
54 0
|
2月前
|
JavaScript 前端开发
React——虚拟DOM创建的两种方式【二】
React——虚拟DOM创建的两种方式【二】
26 0
|
4月前
|
JavaScript 前端开发 算法
虚拟DOM是React的关键技术,它是个轻量的JS对象树,模拟实际DOM结构。
【6月更文挑战第27天】虚拟DOM是React的关键技术,它是个轻量的JS对象树,模拟实际DOM结构。当状态改变,React不直接修改DOM,而是先构建新的虚拟DOM树。通过 diff 算法比较新旧树,找到最小变更,仅更新必要部分,提高性能,避免频繁DOM操作。虚拟DOM还支持跨平台应用,如React Native。它优化了更新流程,简化开发,并提升了用户体验。
34 1
|
5月前
|
JavaScript 算法 API
解释 Vue 的虚拟 DOM 及其优势。
解释 Vue 的虚拟 DOM 及其优势。
64 2
|
XML JavaScript 前端开发
|
5月前
|
JavaScript 前端开发
【React学习】—虚拟DOM两种创建方式(二)
【React学习】—虚拟DOM两种创建方式(二)
|
JSON JavaScript 数据格式
【Vue 开发实战】基础篇 # 7:理解虚拟DOM及key属性的作用
【Vue 开发实战】基础篇 # 7:理解虚拟DOM及key属性的作用
108 0
【Vue 开发实战】基础篇 # 7:理解虚拟DOM及key属性的作用
|
JavaScript 前端开发 算法
介绍 DOM 和虚拟 DOM 的概念|学习笔记
快速学习介绍 DOM 和虚拟 DOM 的概念
介绍 DOM 和虚拟 DOM 的概念|学习笔记