document.all是大概从IE4.0开始提供的一个特性,它是包含页面上所有标签元素的数组。也就是说,当IE解析页面时,遇到一个标签,就会将其放入document.all中。document.all.length就是页面上所有标签的数量。
看简单的例子:
<head>
<title>Untitled Page</title>
<script language="javascript">
window.onload = function()
{
var text = "";
var count = document.all.length;
for (var i=0; i < count; ++i)
{
text += "<br/>#" + i + ": " + document.all[i].tagName;
}
var divContainer = document.createElement("div");
divContainer.innerHTML = text;
document.body.appendChild(divContainer);
}
</script>
</head>
<body>
<select multiple size="2">
<option value="1">hello</option>
<option value="2">world</option>
</select>
</body>
</html>
存成test.html页面,在IE中打开,会看到如下输入:
#0: HTML
#1: HEAD
#2: TITLE
#3: SCRIPT
#4: BODY
#5: SELECT
#6: OPTION
#7: OPTION
因为这个document.all特性是IE特有的,所以使用document.all的代码在firefox, opera, safari中会产生异常,无法运行。