日期:2014-05-16 浏览次数:20559 次
 JavaScript高级应用:使用DOM技术操纵文档
JavaScript高级应用:使用DOM技术操纵文档 [第八色彩专业交友社区] 
分类: Web开发:JavaScript 
作者: 甘冀平 
出处: http://www.enet.com.cn 
阅读次数: 420 
  我们知道,如果使用DHTML对象模型对文档的内容进行操纵,就必须了解相关文档元素的特殊属性和方法。因为文档的元素有很多种,相应的属性和方法也就非常多,为了实现一个功能,开发人员不得不查询许多资料。但是有了DOM技术,一切变得简单起来,那些操纵文档内容的属性和方法具备了元素无关性(element-independent)特点,这使得我们能够按照相同的步骤操纵文档内容。毋庸置疑,DOM技术为开发人员在对象层次上操纵文档提供了最便捷的手段。 
本文就为你全面介绍在JavaScript中如何使用DOM属性和方法操纵文档内容。 
使用data、nodeValue和src属性 
DOM 提供了2个属性用于修改文本节点的内容,它们是data和nodeVaule。2个属性实现的功能相同,语法是:object.data="new value"或者object.nodeVaule="new value",其中object代表页面中的文本项节点。如果修改图形文件的内容,语法是:object.src="new value",其中object表示页面中的img标记节点。来看看下面的例子: 
<HTML><HEAD><TITLE> DOM Demo </title></HEAD> 
<BODY ID="bodyNode"> 
This is the document body 
<P ID = "p1Node">This is paragraph 1.</P> 
<P ID = "p2Node">This is paragraph 2.</P> 
<P ID = "p3Node">This is paragraph 3. 
<IMG ID = "imgNode" SRC="myexam.gif">This text follows the image 
<TABLE ID="tableNode"> 
<TR><TD BGCOLOR=yellow>This is row 1, cell 1</TD><TD BGCOLOR=orange>This is row 1, cell 2</TD></TR> 
<TR><TD BGCOLOR=red>This is row 2, cell 1</TD><TD BGCOLOR=magenta>This is row 2, cell 2</TD></TR> 
<TR><TD BGCOLOR=lightgreen>This is row 3, cell 1</TD><TD BGCOLOR=beige>This is row 3, cell 2</TD></TR> 
</TABLE> 
</P> 
<P ID = "p4Node">This is paragraph 4.</P> 
<SCRIPT LANGUAGE="JavaScript"> 
<!-- 
alert( 
"页面初始状态" + "\n\n" + 
"bodyNode.firstChild.nodeValue = " + bodyNode.firstChild.nodeValue + "\n" + 
"bodyNode.firstChild.data = " + bodyNode.firstChild.data + "\n" 
); 
bodyNode.firstChild.nodeValue = "This is the new document body, set by the nodeValue property"; 
p3Node.childNodes[1].src = "myexam2.gif"; 
alert( 
"对页面内容进行修改后" + "\n\n" + 
"bodyNode.firstChild.nodeValue = " + bodyNode.firstChild.nodeValue + "\n" + 
"bodyNode.firstChild.data = " + bodyNode.firstChild.data + "\n" + 
"p3Node.childNodes[1].src = " + p3Node.childNodes[1].src 
); 
// --> 
</SCRIPT></BODY></HTML> 
上述代码首先显示页面的初始内容以及节点p1Node的相关属性值,然后对节点bodyNode的第1个孩子节点的nodeValue属性进行赋值修改其文本内容,对节点p3Node的第2个孩子节点(也就是了img标记)的src属性进行赋值修改图形的内容。 
使用createElement方法 
createElement 方法的功能是在文档中创建一个孤立HTML标记节点。孤立节点既没有孩子节点也没有双亲节点,而且与文档中的现存节点也互不关联。被创建的孤立HTML标记节点的唯一信息就是它代表的HTML标记,比如< P>、< FONT>和< TABLE>。CreateElement的语法为document.createElement(HTMLTag),HTMLTag表示要创建的 HTML标记,返回值是创建的孤立HTML标记节点。来看看下面的例子: 
<HTML><HEAD><TITLE> DOM Demo </title></HEAD> 
<BODY ID="bodyNode"> 
<SCRIPT LANGUAGE="JavaScript"> 
<!-- 
alert("页面初始状态"); 
tableObj = document.createElement("TABLE"); 
tbodyObj = document.createElement("TBODY"); 
trObj = document.createElement("TR"); 
tdObj = document.createElement("TD"); 
alert( 
"对页面内容进行修改后" + "\n" + 
"bodyNode.firstChild = " + bodyNode.firstChild + "\n" + 
"tableObj.nodeName = " + tableObj.nodeName + "\n" + 
"tbodyObj.nodeName = " + tbodyObj.nodeName + "\n" + 
"trObj.nodeName = " + trObj.nodeName + "\n" + 
"tdObj.nodeName = " + tdObj.nodeName + "\n" + 
"tableObj = " + tableObj + "\n" 
); 
// --> 
</SCRIPT> 
</BODY> 
</HTML> 
上述代码在文档中创建了4个孤立HTML标记节点tableObj、tbodyObj、trObj和tdObj,它们就象太空中4