深入浅出DOM模型(源码分析)!

简介:

Ajax由四部分组成:JavaScript,css,DOM,xmlHttpRequest。

今天搞了搞DOM模式。

与大家分享笔记和源码,使不了解DOM的读者,通过这篇随笔掌握DOM精华:

*************************************************

DOM模型

DOM模型框架(文档对象模型)

DOM模型中的节点
元素节点
文本节点
属性节点

使用DOM

访问节点:
getElementByTagName(以标签名称获得)

exampl:

复制代码
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=utf-8"   />
< title > GET VS POST </ title >
< script  language ="javascript" >
function  searchDOM(){
// 放在函数内,页面加载完成后才用<body>的onload加载
var  oLi = document.getElementsByTagName( " li " );
// 输入长度,标签名称以及某项的文本节点值
alert(oLi.length + "   " + oLi[ 0 ].tagName + "   " + oLi[ 3 ].childNodes[ 0 ].nodeValue);
var  oUl = document.getElementByTagName( " ul " );
var  oLi2 = oUl[ 1 ].getElementByTagName( " li " );
alert(oLi2.length
+ "   " + oLi2[ 0 ].tagName + "   " + oLi2[ 1 ].childNodes[ 0 ].nodeValue);
}
</ script >
</ head >
< body  onload ="searchDOM()" >
< ul > 客户端语言
< li > HTML </ li >
< li > JavaScript </ li >
< li > CSS </ li >
</ ul >
< ul > 服务器端语言
< li > ASP.NET </ li >
< li > Java </ li >
< li > PHP </ li >
</ ul >
</ body >
</ html >
复制代码



getElementById

example:

复制代码
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=utf-8"   />
< title > GET VS POST </ title >
< script  language ="javascript" >
function  searchDOM(){
var  oLi = document.getElementById( " cssLi " );
// 输入标签名称以及文本节点值
alert(oLi.tagName + "   " + oLi.childNodes[ 0 ].nodeValue);
}
</ script >
</ head >
< body  onload ="searchDOM()" >
< ul > 客户端语言
< li > HTML </ li >
< li > JavaScript </ li >
< li  id ="cssLi" > CSS </ li >
</ ul >
< ul > 服务器端语言
< li > ASP.NET </ li >
< li > Java </ li >
< li > PHP </ li >
</ ul >
</ body >
</ html >
复制代码



父子关系:

复制代码
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=utf-8"   />
< title > GET VS POST </ title >
< script  language ="javascript" >
function  myDOMInspector(){
var  oUl = document.getElementById( " myList " );        // 获取<ul>标记
var  DOMString = "" ;
if (oUl.hasChildNodes()){                // 判断是否有子节点
var  oCh = oUl.childNodes;
for ( var  i = 0 ;i < oCh.length;i ++ )            // 逐一查找
DOMString += oCh[i].nodeName + "" n " ;
}
alert(DOMString);
}
</script>
</head>
<body onload=
" myDOMInspector() " >
<ul id=
" myList " >
<li>施杨</li>
<li>嘿嘿</li>
<li>嘻嘻</li>
<li>呵呵</li>
<li>哈哈</li>
</ul>
</body>
</html>
复制代码



节点的属性:

复制代码
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=utf-8"   />
< title > GET VS POST </ title >
< script  language ="javascript" >
function  myDOMInspector(){
// 获取图片
var  myImg = document.getElementsByTagName( " img " )[ 0 ];
// 获取图片title属性
alert(myImg.getAttribute( " title " ));
}
</ script >
</ head >
< body  onload ="myDOMInspector()" >
< img  src ="01.jpg"  title ="施杨" />
</ body >
</ html >
复制代码



创建新节点

复制代码
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=utf-8"   />
< title > GET VS POST </ title >
< script  language ="javascript" >
function  createP(){
var  oP = document.createElement( " p " );
var  oText = document.createTextNode( " 这是一段感人的故事 " );
oP.appendChild(oText);
document.body.appendChild(oP);
}
</ script >
</ head >
< body  onload ="createP()" >
< p > 实现写一行文字在这里,测试appendChild()方法的添加位置 </ p >
</ body >
</ html >
复制代码



innerHTML

该属性表示某个标记之间的所有内容,包括代码本身。
该属性可以读取,同时还可以设置。

复制代码
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=utf-8"   />
< title > innerHTML </ title >
< script  language ="javascript" >
function  myDOMInnerHTML(){
var  myDiv = document.getElementById( " myTest " );
alert(myDiv.innerHTML);      
// 直接显示innerHTML的内容
//
修改innerHTML,可直接添加代码
myDiv.innerHTML = " <img src='01.jpg' title='施杨'> " ;
}
</ script >
</ head >
< body  onload ="myDOMInnerHTML()" >
< div  id ="myTest" >
< span > 图库 </ span >
< p > 这是一行用于测试的文字 </ p >
</ div >
</ body >
</ html >
复制代码

本文转自施杨博客园博客,原文链接:http://www.cnblogs.com/shiyangxt/archive/2008/10/26/1319983.html,如需转载请自行联系原作者

 

相关文章
|
6月前
|
JavaScript 前端开发 算法
MVVM模型,虚拟DOM和diff算法
1.MVVM是前端开发领域当中非常流行的开发思想。(一种架构模式)目前前端的大部分主流框架都实现了这个MVVM思想,例如Vue,React等2.虽然Vue没有完全遵循MVVM模型,但是Vue的设计也受到了它的启发。Vue框架基本上也是符合MVVM思想的 3.MVVM模型当中尝到了Model和View进行了分离,为什么要分离?
|
JavaScript 前端开发 开发者
jQuery文档对象模型DOM的实际应用
jQuery文档对象模型DOM的实际应用
53 0
|
20天前
|
XML 编解码 JavaScript
DOM(文档对象模型)和 BOM(浏览器对象模型)
【10月更文挑战第19天】在前端开发中,理解 DOM(文档对象模型)和 BOM(浏览器对象模型)是至关重要的。它们是 Web 开发的基础,为我们提供了与网页文档和浏览器进行交互的能力。
|
3月前
|
JavaScript 前端开发
js之DOM 文档对象模型
js之DOM 文档对象模型
21 1
js之DOM 文档对象模型
|
3月前
|
JavaScript 前端开发
js之DOM 文档对象模型
js之DOM 文档对象模型
|
6月前
|
JavaScript 前端开发
JavaScript 提供了多种方法来操作 DOM(文档对象模型)
【5月更文挑战第11天】JavaScript 用于DOM操作的方法包括获取元素(getElementById, getElementsByClassName等)、修改内容(innerHTML, innerText, textContent)、改变属性、添加/删除元素(appendChild, removeChild)和调整样式。此外,addEventListener用于监听事件。注意要考虑兼容性和性能当使用这些技术。
46 2
|
6月前
|
XML JavaScript 数据格式
Beautiful Soup 库的工作原理基于解析器和 DOM(文档对象模型)树的概念
【5月更文挑战第10天】Beautiful Soup 使用解析器(如 html.parser, lxml, html5lib)解析HTML/XML文档,构建DOM树。它提供方法查询和操作DOM,如find(), find_all()查找元素,get_text(), get()提取信息。还能修改DOM,添加、修改或删除元素,并通过prettify()输出格式化字符串。它是处理网页数据的利器,尤其在处理不规则结构时。
78 2
|
6月前
|
XML 存储 JavaScript
DOM(文档对象模型):理解网页结构与内容操作的关键技术
**DOM摘要:**文档对象模型(DOM)是独立于语言的接口,用于访问和修改HTML或XML文档。HTML DOM用于HTML,XML DOM用于XML。示例展示了如何用JavaScript通过DOM获取和修改元素,如通过ID或标签名。XML DOM涉及加载XML文件或字符串,获取元素值。DOM节点包括文档、元素、文本等,通过属性(如nodeName, nodeValue)和方法(如getElementsByTagName, appendChild)操作。节点树结构允许遍历和修改文档结构。
91 2
DOM(文档对象模型):理解网页结构与内容操作的关键技术
|
6月前
|
JavaScript 前端开发
JavaScript DOM 文档对象模型(获取、改变html元素)
JavaScript DOM 文档对象模型(获取、改变html元素)
|
6月前
|
JavaScript 前端开发 API
JavaScript DOM 文档对象模型
JavaScript DOM 文档对象模型