博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML DOM ——常用知识点小结
阅读量:2394 次
发布时间:2019-05-10

本文共 3849 字,大约阅读时间需要 12 分钟。

一、DOM对象:

  当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。HTML DOM 模型被构造为对象的树。

  通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。

  JavaScript 能够改变页面中的所有 HTML 元素
  JavaScript 能够改变页面中的所有 HTML 属性
  JavaScript 能够改变页面中的所有 CSS 样式
  JavaScript 能够对页面中的所有事件做出反应

  而对HTML的修改,很多要通过DOM对象的操作来实现的

二、常用操作:

 查找节点:

  1、getElementById(elementId)

   //寻找一个有着给定id属性值的元素,返回一个元素节点

  2、getElementsByTagName(tagName)

   //用于寻找有着给定标签名的所有元素

  3、getElementsByName(elementName)

   //在HTML中checkbox和radio都是通过相同的name属性值,来标识一个组内的元素。如果我们现在要获取被选中的元素,首先获取改组元素,然后循环判断是节点的checked属性值是否为true即可

 综合实例

[html]
  1. <span style="font-size:14px;">      <html>  
  2.         <body>  
  3.           
  4.         <p id="intro" >这是ID选择器的实例</p>  
  5.         <div id="main">  
  6.         <p>这是标签选择器的实例</p>  
  7.         </div>  
  8.           
  9.         <script>  
  10.             //使用ID选择器  
  11.             x=document.getElementById("intro");  
  12.             document.write('<p>id="intro" 的段落中的文本是:' + x.innerHTML + '</p>');  
  13.               
  14.             //使用标签选择器  
  15.             var x=document.getElementById("main");  
  16.             var y=x.getElementsByTagName("p");  
  17.             document.write('id 为 "main" 的 div 中的第一段文本是:' + y[0].innerHTML);  
  18.         </script>  
  19.           
  20.         </body>  
  21.         </html></span><span style="font-size: 18px; font-family: Arial, Helvetica, sans-serif;">   </span>  

 创建节点

  1、document.createElement(element)

   //参数为要新添的节点标签名

  2、document.createTextNode(string)

   //创建一个包含着给定文本的新文本节点

 综合实例

[html]
  1. <span style="font-size:18px;">     </span><span style="font-size:14px;"><!DOCTYPE html>  
  2.         <html>  
  3.         <body>  
  4.             <script>        
  5.                 //创建一个节点  
  6.                 node=document.createElement("z")              
  7.                 //带文本的节点  
  8.                 textnode=document.createTextNode("hello");  
  9.           
  10.             </script>  
  11.         </body>  
  12. <span style="white-space: pre;">        </span></html></span>  

 添加节点:

  1、//添加子节点:

   node.appendChild(newChild) //newChild为生新增的节点

  2、//插入节点

   node.insertBefore(newNode,targetNode);

   node.insertAfter(newNode,targetNode);

 综合实例

[html]
  1. <span style="font-size:18px;">  </span><span style="font-size:14px;">   <html>  
  2.         <body>  
  3.         <script>  
  4.         var i_nowline=1;var i_nowwidth=320;var i_nowheight=200;  
  5.         function rdl_fnAppend(){  
  6.         var oNewNode=document.createElement("li");  
  7.         oList.appendChild(oNewNode);  
  8.         i_nowline=i_nowline+1;i_nowheight+=15;  
  9.         oNewNode.innerText="第"+i_nowline.toString()+"个列表项目";  
  10.         window.resizeTo(i_nowwidth,i_nowheight);  
  11.         }  
  12.         </script>  
  13.           
  14.           
  15.         <ul id=oList>  
  16.         <li>第1个列表项目  
  17.         </ul>  
  18.         <input type=button value=" 添加 " onclick="rdl_fnAppend()">  
  19.           
  20.         </body>  
  21.         </html></span>  

 删除节点:

  1、//删除节点node.removeChild(node) 

  2、//IE支持,但FF不支持,node.removeNode()推荐用removeChild代替实现

 综合实例

[html]
  1. <span style="font-size:18px;">      </span><span style="font-size:14px;"><script>  
  2.         var i_nowwidth=320;var i_nowheight=240;  
  3.         function rdl_doRemove(){  
  4.         with (document.all("oParent")) {  
  5.         if (children.length<1) return;  
  6.         removeChild(children[0]);  
  7.         }  
  8.         i_nowheight=i_nowheight-15;  
  9.         window.resizeTo(i_nowwidth,i_nowheight);  
  10.         }  
  11.         </script>  
  12.           
  13.           
  14.         <div id=oParent>  
  15.         <div>第1个子对象</div>  
  16.         <div>第2个子对象</div>  
  17.         <div><a href="#" onclick="return false;">第3个子对象</a></div>  
  18.         <div>第4个子对象</div>  
  19.         </div>  
  20.         <br><input type=button value=" 删除第一个子对象 " onclick="rdl_doRemove()"></span>  

三、常用节点属性:

  1、.nodeName//只读,返回节点名称,相当于tagName.

  2、.nodeValue//可读可写,但对元素节点不能写。返回一个字符串,指示这个节点的值。元素节点返回null,

性节点返回属性值,文本节点返回文本。一般只用于设置文本节点的值。

  3、.nodeType//只读,返回节点类型:1,元素节点;2,属性节点;3,文本节点。 

  4、node.contains() //是否包含某节点,返回boolean值,IE支持,FF不支持contains(),但支持W3C标准

  5、node.hasChildNodes()//是否有子节点,返回boolean值 

 综合实例  

[html]
  1. <span style="font-size: 14px;">     <html>  
  2.         <body>  
  3.           
  4.         <p id="intro">Hello World!</p>  
  5.           
  6.         <script>  
  7.         var txt1=document.getElementById("intro").nodeName;// nodename例子  
  8.         document.write(txt1);  
  9.           
  10.         var txt2=document.getElementById("intro").nodevalue;//nodevalue 例子  
  11.         document.write(txt2);  
  12.           
  13.         var txt3=document.getElementById("intro").nodetype;//nodetype 例子  
  14.         document.write(txt3);  
  15.           
  16.         var txt4=document.getElementById("intro").contains();contains()例子  
  17.         document.write(txt4);  
  18.           
  19.         var txt5=document.getElementById("intro").hasChildNodes();hasChildNodes例子  
  20.         document.write(txt5);         
  21.           
  22.           
  23.         </script>  
  24.           
  25.         </body>  
  26.         </html></span><span style="font-size:18px;">  
  27. </span>  

四、DOM小结

  DOM 定义了访问和操作 HTML 文档的标准方法。而各个浏览器因为其内核的不同,因而对DOM元素解析也不尽相同,因此具体的应用,还需要在具体的实践中积累,文章所列举的一些DOM方法或是属性,都是一些最常用的,至于更全面的,更详细的,送个福利吧(

你可能感兴趣的文章
点到线段的距离
查看>>
HTML_5_Canvas
查看>>
NuGet学习笔记(1)——初识NuGet及快速安装使用
查看>>
NuGet学习笔记(2)——使用图形化界面打包自己的类库
查看>>
C# 数据类型基础,堆栈,装箱与拆箱
查看>>
HTML 中的<div>
查看>>
C#中的static、readonly与const的比较
查看>>
Mysql Fabric实现学习笔记
查看>>
Spring JTA multiple resource transactions in Tomcat with Atomikos example
查看>>
How to setup multiple data sources with Spring and JPA
查看>>
MySQL 5.7 Fabric: any good?
查看>>
Accessing Fabric HA Groups from Java
查看>>
Q&A: Putting MySQL Fabric to use
查看>>
Fabric FAQ
查看>>
boost 1.39编译安装手记
查看>>
树莓派安装中文输入法
查看>>
树莓派(raspberry pi)播发flash 远程登录 视频播放
查看>>
Linux 安装与配置服务器版jre7
查看>>
Perform Two Phase Commits in MongoDB
查看>>
java.rmi.ConnectException: Connection refused to host: 127.0.0.1
查看>>