`
昔日舞曲
  • 浏览: 58188 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

document.all 的详细解释

阅读更多

从IE4开始IE的object model才增加了document.all[],来看看document.all[]的Description:
Array of all HTML tags in the document.Collection of all elements contained by the object.
  也就是说document.all[]是文档中所有标签组成的一个数组变量,包括了文档对象中所有元素(见例1)。

IE’s document.all collection exposes all document elements.This array provides access to every element in the document.

  document.all[]这个数组可以访问文档中所有元素。

例1(这个可以让你理解文档中哪些是对象)

<!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>Document.All Example</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
</head>
<body>
<h1>Example Heading</h1>
<hr />
<p>This is a <em>paragraph</em>. It is only a <em>paragraph.</em></p>
<p>Yet another <em>paragraph.</em></p>
<p>This final <em>paragraph</em> has <em id="special">special emphasis.</em></p>
<hr />
<script type="text/javascript">
<!--
var i,origLength;
origLength = document.all.length;
document.write('document.all.length='+origLength+"<br />");
for (i = 0; i < origLength; i++)
{
document.write("document.all["+i+"]="+document.all[i].tagName+"<br />");
}
//-->
</script>
</body>
</html>

  它的执行结果是:

Example Heading

--------------------------------------------------------------------------------

This is a paragraph. It is only a paragraph.

Yet another paragraph.

This final paragraph has special emphasis.


--------------------------------------------------------------------------------
document.all.length=18
document.all[0]=!
document.all[1]=HTML
document.all[2]=HEAD
document.all[3]=TITLE
document.all[4]=META
document.all[5]=BODY
document.all[6]=H1
document.all[7]=HR
document.all[8]=P
document.all[9]=EM
document.all[10]=EM
document.all[11]=P
document.all[12]=EM
document.all[13]=P
document.all[14]=EM
document.all[15]=EM
document.all[16]=HR
document.all[17]=SCRIPT
(注意它只可以在IE上运行)
  例2(访问一个特定元素)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>单击DIV变色</title>
<style type="text/css">
<!--
#docid{
height:400px;
width:400px;
background-color:#999;}
-->
</style>
</head>
<body><div id="docid" name="docname" onClick="bgcolor()"></div>
</body>
</html>
<script language="javascript" type="text/javascript">
<!--
function bgcolor(){
document.all[7].style.backgroundColor="#000"
}
-->
</script>

  上面的这个例子让你了解怎么访问文档中的一个特定元素,比如文档中有一个DIV
<div id="docid" name="docname"></div>,你可以通过这个DIV的ID,NAME或INDEX属性访问这个DIV:

document.all["docid"]
document.all["docname"]
document.all.item("docid")
document.all.item("docname")
document.all[7]
document.all.tags("div")则返回文档中所有DIV数组,本例中只有一个DIV,所以用document.all.tags("div")[0]就可以访问了。

  3、使用document.all[]

例3

<!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>Document.All Example #2</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
</head>
<body>
<!-- Works in Internet Explorer and compatible -->
<h1 id="heading1" align="center" style="font-size: larger;">DHTML Fun!!!</h1>
<form name="testform" id="testform" action="#" method="get">
<br /><br />
<input type="button" value="Align Left"
onclick="document.all['heading1'].align='left';" />//改变<h1></h1>标签对中的align属性的值,下面的代码作用相同
<input type="button" value="Align Center"
onclick="document.all['heading1'].align='center';" />
<input type="button" value="Align Right"
onclick="document.all['heading1'].align='right';" />
<br /><br />
<input type="button" value="Bigger"
onclick="document.all['heading1'].style.fontSize='xx-large';" />
<input type="button" value="Smaller"
onclick="document.all['heading1'].style.fontSize='xx-small';" />
<br /><br />
<input type="button" value="Red"
onclick="document.all['heading1'].style.color='red';" />
<input type="button" value="Blue"
onclick="document.all['heading1'].style.color='blue';" />
<input type="button" value="Black"
onclick="document.all['heading1'].style.color='black';" />
<br /><br />
<input type="text" name="userText" id="userText" size="30" />
<input type="button" value="Change Text"
onclick="document.all['heading1'].innerText=document.testform.userText.value;" />//改变<h1></h1>标签对中的文本内容
</form>
</body>
</html>

4、标准DOM中的访问方法

  开头就说过document.all[]不符合WEB标准,那用什么来替代它呢?document.getElementById


Most third-party browsers are “strict standards” implementations, meaning that they implement W3C and ECMA standards and ignore most of the proprietary object models of Internet Explorer and Netscape.If the demographic for your Web site includes users likely to use less common browsers, such as Linux aficionados, it might be a good idea to avoid IE-specific features and use the W3C DOM instead. by Internet Explorer 6, we see that IE implements significant portions of the W3C DOM.

  这段话的意思是大多数第三方浏览器只支持W3C的DOM,如果你的网站用户使用其他的浏览器,那么你最好避免使用IE的私有属性。而且IE6也开始支持W3C DOM。

毕竟大多数人还不了解标准,在使用标准前,你还可以在你的网页中用document.all[]访问文档对象前面写到WEB标准,今天继续WEB标准下可以通过getElementById(), getElementsByName(), and getElementsByTagName()访问DOCUMENT中的任一个标签:

  1、getElementById()

  getElementById()可以访问DOCUMENT中的某一特定元素,顾名思义,就是通过ID来取得元素,所以只能访问设置了ID的元素。

  比如说有一个DIV的ID为docid:

<div id="docid"></div>

  那么就可以用getElementById("docid")来获得这个元素。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>ById</title>
<style type="text/css">
<!--
#docid{
height:400px;
width:400px;
background-color:#999;}
-->
</style>
</head>
<body><div id="docid" name="docname" onClick="bgcolor()"></div>
</body>
</html>
<script language="javascript" type="text/javascript">
<!--
function bgcolor(){
document.getElementById("docid").style.backgroundColor="#000"
}
-->
</script>

  2、getElementsByName()

  这个是通过NAME来获得元素,但不知大家注意没有,这个是GET ELEMENTS,复数ELEMENTS代表获得的不是一个元素,为什么呢?

  因为DOCUMENT中每一个元素的ID是唯一的,但NAME却可以重复。打个比喻就像人的身份证号是唯一的(理论上,虽然现实中有重复),但名字重复的却很多。如果一个文档中有两个以上的标签NAME相同,那么getElementsByName()就可以取得这些元素组成一个数组。

  比如有两个DIV:

  <div name="docname" id="docid1"></div>
  <div name="docname" id="docid2"></div>

  那么可以用getElementsByName("docname")获得这两个DIV,用getElementsByName("docname")[0]访问第一个DIV,用getElementsByName("docname")[1]访问第二个DIV。

  下面这段话有错,请看forfor的回复,但是很可惜,IE没有支持这个方法,大家有兴趣可以在FIREFOX或NETSCAPE中调试下面这个例子。(我在NETSCAPE7.2英文版和FIREFOX1.0中调试成功。)

<!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=gb2312">
<title>Byname,tag</title>
<style type="text/css">
<!--
#docid1,#docid2{
margin:10px;
height:400px;
width:400px;
background-color:#999;}
-->
</style>
</head>
<body>
<div name="docname" id="docid1" onClick="bgcolor()"></div>
<div name="docname" id="docid2" onClick="bgcolor()"></div>
</body>
</html>
<script language="javascript" type="text/javascript">
<!--
function bgcolor(){
var docnObj=document.getElementsByName("docname");
docnObj[0].style.backgroundColor = "black";
docnObj[1].style.backgroundColor = "black";
}
-->
</script>

  3、getElementsByTagName()

  这个呢就是通过TAGNAME(标签名称)来获得元素,一个DOCUMENT中当然会有相同的标签,所以这个方法也是取得一个数组。

  下面这个例子有两个DIV,可以用getElementsByTagName("div")来访问它们,用getElementsByTagName("div")[0]访问第一个DIV,用

getElementsByTagName("div")[1]访问第二个DIV。

<!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=gb2312">
<title>Byname,tag</title>
<style type="text/css">
<!--
#docid1,#docid2{
margin:10px;
height:400px;
width:400px;
background-color:#999;}
-->
</style>
</head>
<body>
<div name="docname" id="docid1" onClick="bgcolor()"></div>
<div name="docname" id="docid2" onClick="bgcolor()"></div>
</body>
</html>
<script language="javascript" type="text/javascript">
<!--
function bgcolor(){
var docnObj=document.getElementsByTagName("div");
docnObj[0].style.backgroundColor = "black";
docnObj[1].style.backgroundColor = "black";
}
-->
</script>

分享到:
评论

相关推荐

    JS中关于document.all的详解

    ### JS中关于`document.all`的详解 #### 一、`document.all`简介 `document.all` 是一个只读属性,它返回一个包含文档中所有元素的类数组对象。这个特性最初是为 Internet Explorer 设计的,并且在早期版本的 IE 中...

    document.all[]详解

    document.write('document.all.length=' + origLength + " "); for (i = 0; i ; i++) { document.write("document.all[" + i + "]=" + document.all[i].tagName + " "); } ``` **输出结果**: ``` ...

    javascript里的document.all用法

    var element = document.all.item(0); ``` 这里,`item()`方法用于按索引访问集合中的元素,而方括号表示法则允许通过ID或name属性名直接访问元素。 #### 2. 遍历所有元素 由于`document.all`包含所有页面元素,...

    JS:document.all的用法

    需要注意的是,当name相同且存在多个元素时,`document.all`将返回一个类似数组的对象,此时直接使用`document.all.aaa.value`会报错,因为`document.all.aaa`实际上是一个对象而非单个元素。 #### 案例2:处理重复...

    document.all Firefox不支持

    在描述中提到的博客链接指向了iteye.com的一个博客条目,虽然具体内容未给出,但可以推测博主可能详细讨论了`document.all`在Firefox中的不兼容性,以及如何在跨浏览器开发中避免依赖这个属性,以确保代码的兼容性...

    document.all与WEB标准

    - 这个集合还允许通过元素标签名获取特定类型的元素集合,如`document.all.tags("tagName")`,这将返回一个包含所有指定标签名元素的数组。 尽管`document.all`在早期的IE版本中广泛使用,但它不是跨浏览器的解决...

    JS的document.all函数使用示例

    一. document.all是页面内所有元素的一个集合。例如: document.all(0)表示页面内第一个元素 二. document.all可以判断浏览器是否是IE if(document.all){ alert&#40;... [removed] alert(document.all.aaa.v

    Document和Document.all区别分析

    此外,对于具有ID的元素,如 `&lt;div id="aa"&gt;`,我们通常使用 `document.getElementById("aa")` 来获取,但也可以通过 `document.all["aa"]` 或 `document.all.aa` 访问。不过,这种方法不推荐,因为它依赖于过时的IE...

    js中document.getElementByid、document.all和document.layers区分介绍

    在这个话题中,我们将深入探讨三个在JavaScript历史中起到重要作用的属性:`getElementById`,`document.all`,以及`document.layers`。 首先,`getElementById`是W3C定义的DOM Level 1标准方法,它根据指定的ID值...

    document.all的一个比较完整的总结及案例

    如果有多个元素具有相同的`id`,`document.all.id`将无法正常工作: ```html alert(document.all.aaa.value); // 显示 undefined,因为id应该是唯一的 ``` #### 案例4: 为了避免重复ID导致的问题,可以使用...

    document.execCommand()的用法

    32. **SelectAll**: 选择所有文本。 #### 兼容性问题 需要注意的是,`document.execCommand()`在不同的浏览器中支持程度不一。例如,Firefox自版本68开始已经废弃了该方法,而其他现代浏览器如Chrome、Edge也计划...

    document.all与getElementById、getElementsByName、getElementsByTagName用法区别-document.all第1/2页

    在上述例子中,`document.all.length` 返回了页面元素的总数,遍历`document.all`数组可以展示每个元素的标签名。 2. `getElementById` `getElementById` 方法是DOM中用于根据元素的ID属性获取单一元素的方法。它...

    再谈ie和firefox下的document.all属性

    然而,如果`document.all`后面跟随了某个属性,比如`document.all.txt`,Firefox会尝试查找具有该名称的元素,并返回一个HTMLCollection对象,就像在IE中一样。这就是为什么在第二个示例中,无论是在IE还是Firefox,...

    解决 firefox 不支持 document.all的方法

    解决 Firefox 不支持 document.all 的方法 在 Web 开发中,我们经常会遇到浏览器的兼容性问题,其中一个常见的问题就是 Firefox 不支持 document.all 对象。document.all 是一个遗留的对象,早期的 IE 浏览器支持它...

    DOM对象中document.all显示全部html标记集合

    DOM对象中document.all显示全部html标记集合.为网页版,打开后,右击,显示源码ok

    PDF转换器Ailt.PDF.to.All.Document.Converter.v5.4.zip

    "PDF转换器Ailt.PDF.to.All.Document.Converter.v5.4"就是这样一款工具,它能够帮助用户将PDF文件转换为多种不同的文档格式。 该软件的主要功能是将PDF文件转换为Word文档,以便用户可以自由地编辑、添加或删除文本...

    document.all与getElementById、getElementsByName、getElementsByTagName用法区别-getElementById

    1. `document.all`: 这个属性是旧版Internet Explorer(IE4-IE8)特有的,它返回一个包含文档中所有元素的集合。`document.all` 不遵循W3C标准,因此不建议在现代浏览器中使用。它通过元素的名称或ID查找元素,但...

Global site tag (gtag.js) - Google Analytics