| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1003 人关注过本帖
标题:document.all问题
只看楼主 加入收藏
努力加油
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:34
专家分:127
注 册:2010-4-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
document.all问题
我想请问一下,为什么有的时候条件语句中只有document.all语句 这个代表什么意思?
搜索更多相关主题的帖子: document 
2010-04-11 10:12
reggy
Rank: 2
等 级:论坛游民
帖 子:17
专家分:25
注 册:2008-4-28
收藏
得分:10 
The document.all property is an array of all the HTML elements that are in the document.
The elements appear in the array in the order in which they were created.

翻译一下:

document.all 属性是一个 document 中所有(all)的 HTML 元素组成的数组。这些元素根据它们创建的顺序出现在数组中。

体验一下以下代码:
程序代码:
<html name='theHTML'>

<a name='theA'><h2 name='theH2'><u name='theU'>Paint Colors</u></h2></a>
Red<br name='1stBR'>
Green<br>
Blue<br>
Orange<br>
<hr>

<script name='theSCRIPT' language='JavaScript'>
  for(var i=0; i<document.all.length; i++){
    alert(document.all[i].name)
  }
</script>
</html>

思考一下为什么从第一个 theHTML 到 theA 出现中间有若干个 undefined (未定义的)?

答案是:尽管你中间没有代码,但是浏览器认为有默认代码的。哪它们又该是什么呢?这留给楼主去思考。想一下一般 html 第一行的下一行是什么?答案应该很容易。

我的建议是:使用 【英文google】。体会是,No English, No JavaScript.





 
2010-04-11 10:56
frankqnj
Rank: 4
等 级:贵宾
威 望:12
帖 子:320
专家分:278
注 册:2008-4-6
收藏
得分:5 
if(document.all) 是为了判断浏览器  早期的时候  一些js程序员 为了区分 ie浏览器或以使用ie内核的一些浏览器 和其他浏览器  毕竟常见的就是这种判断方式

因为  曾经 只有ie浏览器 具备 document.all这个成员  .不过现在来说 这段代码是有缺陷的  原因是 opera浏览器也具备 这个东西 所以 应该这样做 if(document.all && !window.opera) 这样判断要稳妥一点
但是对于wondow.opera 这种 随时被人修改的属性 并不可靠 所以  不推荐这种判断方式

至于2楼  The document.all property is an array of all the HTML elements that are in the document.
准确来讲 这个说法是不对的  document.all 并不是数组对象 而是nodeList对象 他只是用起来有些象数组而已
2010-04-11 11:13
reggy
Rank: 2
等 级:论坛游民
帖 子:17
专家分:25
注 册:2008-4-28
收藏
得分:3 
sorry,没看清题目

document.all 可以判断浏览器是否是IE

试试各种浏览器
if(document.all){
alert("is IE!");
}

document.all 在 IE 中出 true,其他的不出 true,但不能说其他浏览器不支持 all 属性,只是其他浏览器 document.all 出 false 而已。

2010-04-11 11:15
努力加油
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:34
专家分:127
注 册:2010-4-11
收藏
得分:0 
就是为了判断浏览器吗?
有时候这样写:
document.all
topmsq.style.backgrouncColor="#ff0000";
这样 我想问问 这样写和直接写document.all.topmsq.style.backgroundColor="#ff0000";是不是一样啊 还是有什么别的用?谢谢指教下..
2010-04-11 18:35
frankqnj
Rank: 4
等 级:贵宾
威 望:12
帖 子:320
专家分:278
注 册:2008-4-6
收藏
得分:2 
document.all.topmsq  可以找到 name为topmsq或id为topmsq的节点  这种方式大多数 标准浏览器都不支持 ...如果你想你的脚本只在ie里跑 那么可以这样写
2010-04-11 18:59
快速回复:document.all问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016848 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved