16.6 DOM应用
事实上,只要通过getElementById( )获取到元素的相关属性之后,几乎就可以对该元素进行任何操作。本节介绍两个DOM应用的例子。
16.6.1 改变<div>的内容
除了前面几节中介绍的应用之外,还可以应用在下拉选择菜单中。例如,代码16.20将document.getElementById( ).firstChild.data用于<select>中,实现了对<div>内容的改变。
代码16.20 改变<div>的内容:16.20.htm
<html>
<head><title>改变<DIV>的内容</title></head>
<body>
<h1>改变 <DIV>的内容</h1><p>
<form action="#" method="get">
Say Hello in:
<!--通过onchange改变id为thephrase 的元素的内容-->
<select onchange="document.getElementById('thephrase').
firstChild.data = this.options[this.selectedIndex].value;">
<option value="Hello">English</option>
<option value="Bonjour">French</option>
<option value="Hola">Spanish</option>
<option value="你好">中文</option>
</select>
</form>
<!--默认为英文的Hello-->
<div id="thephrase">Hello</div>
</body>
</html>
上面代码的显示结果如图16.33所示。

图16.33 显示结果
16.6.2 改变页面样式
实际上,通过上面的例子在<select>中的应用,不仅可以改变<div>的内容,甚至还可以改变页面样式。例如,在代码16.21中,通过选择不同的选项来调用不同的样式表文件,达到改变页面样式的目的。
代码16.21 改变页面样式:16.21.htm
<!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>
<title>改变页面样式</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<!--链接外部样式表文件,在下面的操作中,可以改变这里的链接-->
<link id="styleLink" rel="stylesheet" href="red.css" type="text/css">
</head>
<body>
<center><h1>改变页面样式</h1></center><p>
通过选择下面的不同样式,可以改变页面样式。
<script type="text/javascript">
<!--
function changeStyle(userStyle) //函数:改变样式
{
//使用用户选择的样式来代替默认链接的样式
document.getElementById('styleLink').href=userStyle;
}
//-->
</script>
<form action="#" method="get">
选择样式:
<!--通过onchange调用changeStyle()改变外部样式表链接,其中的参数为用户选择的值-->
<select onchange="changeStyle(this.options[this.selectedIndex].value);">
<option value="red.css">Red Style 1</option>
<option value="white.css">White Style 2</option>
<option value="blue.css">Blue Style 3</option>
</select>
</form>
</body>
</html>
上面代码运行后的显示效果如图16.34所示。
此时,选择下拉列表中的其他样式,会分别显示蓝色和绿色的样式效果。如图16.35和图16.36所示。
代码中用到了3个样式表文件:red.css、green.css和blue.css,内容都很简单,只有一句代码,分别是“body{color:red}”、“body{color:green}”和“body{color:blue}”。
DOM对文档处理的功能很强大,本节只是介绍了两个普通的应用,具体应用会随需求不同而异,需要在实践中去摸索。

图16.35 蓝色样式效果 图16.36 绿色样式效果







