document.all是页面内所有元素的一个集合。例如:
document.all(0)表示页面内第一个元素
二.
document.all可以判断浏览器是否是IE
if(document.all){
alert("is IE!");
}
三.
也可以通过给某个元素设置id属性(id=aaaa),然后用document.all.aaaa调用该元素
四.
案例:
代码1:
<input name=aaa value=aaa>
<input id=bbb value=bbb>
<script language=Jscript>
alert(document.all.aaa.value) //根据name取value
alert(document.all.bbb.value) //根据id取 value
</script>
代码2:
但是常常name可以相同(如:用checkbox取用户的多项爱好的情况)
<input name=aaa value=a1>
<input name=aaa value=a2>
<input id=bbb value=bbb>
<script language=Jscript>
alert(document.all.aaa(0).value) //显示a1
alert(document.all.aaa(1).value) //显示a2
alert(document.all.bbb(0).value) //这行代码会失败
</script>
代码3:
理论上一个页面中的id是互不相同的,如果出现不同tags有相同的id
document.all.id 就会失败,就象这样:
<input id=aaa value=a1>
<input id=aaa value=a2>
<script language=Jscript>
alert(document.all.aaa.value) //显示 undefined 而不是 a1或者a2
</script>
代码4:
对于一个复杂的页面(代码很长,或者id是由程序自动产生),或着一个
javascript初学者写的程序,很有可能出现两个tags有相同id的情况。
为了编程的时候不出错,我推荐这样的写法:
<input id=aaa value=aaa1>
<input id=aaa value=aaa2>
<input name=bbb value=bbb>
<input name=bbb value=bbb2>
<input id=ccc value=ccc>
<input name=ddd value=ddd>
<script language=Jscript>
alert(document.all("aaa",0).value)
alert(document.all("aaa",1).value)
alert(document.all("bbb",0).value)
alert(document.all("bbb",1).value)
alert(document.all("ccc",0).value)
alert(document.all("ddd",0).value)
</script>
document.layers与document.all 作用
if(document.all)检测是否是IE
if(document.layers)检测是否是netscape4.X
ns6+不支持
if(document.layers)了,也就是不用它检测了
示例源码:(显示时间)
<HTML>
<HEAD>
<TITLE>时间日期篇--在背景上加时钟</TITLE>
</HEAD>
<BODY bgcolor="#fef4d2" onLoad=bgclock() background="../images/background3.jpg">
<br>
<br>
<center>
<font color="ffaafa">
<h2><font color="#FF0000"><b>时间日期篇--在背景上加时钟</b></font></h2>
</font>
<hr width=300>
<br><br>
<!-- 案例代码1开始 -->
<script language=javaScript>
function bgclock() {
thistime= new Date()
var hours=thistime.getHours()
var minutes=thistime.getMinutes()
var seconds=thistime.getSeconds()
if (eval(hours) <10) {hours="0"+hours}
if (eval(minutes) < 10) {minutes="0"+minutes}
if (seconds < 10) {seconds="0"+seconds}
thistime = hours+":"+minutes+":"+seconds
if(document.all) //IE浏览器
{
bgclocknoshade.innerHTML=thistime
bgclockshade.innerHTML=thistime
}
if(document.layers) //netscape4.X
{
document.bgclockshade.document.write('<div
id="bgclockshade"
style="position:absolute;visibility:visible;font-family:Verdana;color:FFAAAAA;font-
size:120px;top:10px;left:150px">'+thistime+'</div>')
document.bgclocknoshade.document.write('<div
id="bgclocknoshade"
style="position:absolute;visibility:visible;font-family:Verdana;color:DDDDDD;font-
size:120px;top:10px;left:150px">'+thistime+'</div>')
document.close()
}
var timer=setTimeout("bgclock()",1000)
}
</script>
<!-- 案例代码1结束 -->
<!-- 案例代码2开始 -->
<!-- [Step1]: 这里可以改变时钟的字体 -->
<!-- [Step2]: 这里可以改变时钟的颜色 -->
<!-- [Step3]: 这里可以改变时钟的位置和大小 -->
<div
id="bgclockshade"
style="position:absolute;visibility:visible;font-family:Arial;color:0000CC;font-size:70px;top:102px;left:152px"></div>
<!-- [Step1]: 这里可以改变时钟的字体 -->
<!-- [Step2]: 这里可以改变时钟的颜色 -->
<!-- [Step3]: 这里可以改变时钟的位置和大小 -->
<div
id="bgclocknoshade"
style="position:absolute;visibility:visible;font-family:Arial;color:DDDDDD;font-size:70px;top:100px;left:150px"></div>
<div id="mainbody" style="position:absolute; visibility:visible">
</div>
<!-- 案例代码2结束 -->
</center></BODY>
</HTML>
2、document.getElementById 是公共标准,被目前的所有主流浏览器支持
3、document.getElementById IE5.0以下的不支持!
4、document.all IE4.0以上的支持!
5、document.all是一个对象数组的引用 (适合IE)
6、document.getElementById得到的是一个对象的引用 (更好地兼容IE、FireFox等其它浏览器)
如果取一个数组可以用getElementsByName or getElementsByTagName