这个js是什么意思:if (document.all&&document.getElementById)

从网上copy来一段做菜单的js:1<scripttype="text/javascript"><!--//--><![CDATA[//><!--2startList=f... 从网上copy来一段做菜单的js:

1 <script type="text/javascript"><!--//--><![CDATA[//><!--
2 startList = function() {
3 if (document.all&&document.getElementById) {
4 navRoot = document.getElementById("nav");
5 for (i=0; i<navRoot.childNodes.length; i++) {
6 node = navRoot.childNodes[i];
7 if (node.nodeName=="LI") {
8 node.onmouseover=function() {
9 this.className+=" over";
10 }
11 node.onmouseout=function() {
12 this.className=this.className.replace(" over", "");
13 }
14 }
15 }
16 }
17 }
18 window.onload=startList;
19
20 //--><!]]></script>

● 第3行的“if (document.all&&document.getElementById) ”是什么意思?document.all 和 document.getElementById返回的是什么值,在 && 计算中是怎么算的?

● 第1行的三个“<!”(包括2个“<!--”)和2个“//”是什么意思?这些和第20行的“//--><!]]>”怎么配对的?

● 第2行的startList 如果在其他代码里都不用,能不能把这个赋值省掉?
展开
 我来答
jc9090kkk
2011-07-14 · 超过30用户采纳过TA的回答
知道答主
回答量:108
采纳率:0%
帮助的人:67.9万
展开全部
第一个问题:document.all是IE浏览器才有的性质,所以document.all是用来判断是否为IE浏览器,document.getElementById是判断是否有id标签,&&是与逻辑运算,意思就是括号里面的两个条件都要成立,才能执行后面大括号的语句。
第二个问题:<!--和//-->是一个配对语句,意思就是js写在配对符号中,如果浏览器不支持js的话,就按一般编程语句的注释处理,而不是按文字显示在页面上,这是个好的编程习惯。
第三个问题:可以啊,你去好好看看js的语法书吧。
百度网友2f855f484
2011-06-26 · TA获得超过487个赞
知道小有建树答主
回答量:403
采纳率:0%
帮助的人:327万
展开全部
1. 第3行的“if (document.all&&document.getElementById) ”是什么意思?document.all 和 document.getElementById返回的是什么值,在 && 计算中是怎么算的?

document.all只有IE支持,所以这个用来判断IE
document.all&&document.getElementById
表示浏览器支持document.all 而且支持document.getElementById则为真

2.第1行的三个“<!”(包括2个“<!--”)和2个“//”是什么意思?这些和第20行的“//--><!]]>”怎么配对的?
没有必要这样写,可以改为 第三行<!-- 第20行 --> 就可以了,作用是当浏览器不支持javascript,则不会把这段代码显示在页面上,<!-- -->是html的注释,不会显示的。

3.第2行的startList 如果在其他代码里都不用,能不能把这个赋值省掉?
不可以省掉
startList = function() 相当于 function startList()
是定义一个function ,是function的名称

如果你要省掉,那
window.onload = function(){
这里写 startList function 的内容
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户22921
2011-06-27 · TA获得超过264个赞
知道答主
回答量:445
采纳率:0%
帮助的人:274万
展开全部
判断浏览器,只有IE才支持document.all
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
悠然见影
推荐于2016-03-18 · TA获得超过422个赞
知道小有建树答主
回答量:337
采纳率:0%
帮助的人:514万
展开全部
1、if (document.all&&document.getElementById) 判断浏览器是否同时支持documnet.getElementById和document.all两种表述方式(方法)。可用于判断浏览器类型。
2、在标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当做字符数据看待,CDATA的形式如下:<![CDATA[文本内容]]> 。在 XML 元素中,"<" 和 "&" 是非法的,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。CDATA 部分中的所有内容都会被解析器忽略。
3、第18行:window.onload=startList;就是引用startList这个函数对象哦。此处是可以省略这个赋值的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式