快速业务通道

漫话ID(上)——Name和ID的种种

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
 

IE 6

IE 7

IE 8 RC1

FF 2.0

FF 3.1b2

结果为Null或Undefine的方法

1

1

1

1

1

注:在引用2原文中作者测试在IE6下方法1可通过,但Aaron的结果与之不一致,因此读者需要自己验 证。同时在引用2中作者指出方法7会返回undefined,但Aaron在自己的测试环境中方法七也可以得到结果 。原文中作者指出:第3、4种方法用到了document.all这个IE专有对象,FF3.0虽然返回了正确的值,不 过却在控制台里发出了警告:非标准的属性 document.all。请使用 W3C 的标准形式 document.getElementById() 。

测试2:在测试1的脚本头加入下列信息

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

测试结果:

 

IE 6

IE 7

IE 8 RC1

FF 2.0

FF 3.1b2

结果为Null或Undefine的方法

1

1

1

1

2

3

4

1

2

3

4

引用2中作者的测试结果中方法2 可以在FF2和FF3下运行通过,但在Aaron的机器上

引用2.

其他需要注意的地方:id要符合标识的要求,比如大小写敏感,最好不要包含下划线(不兼容CSS)。 而name基本上没有什么要求,甚至可以用数字。name主要用于动态网页,表单提交给某个服务器端脚本后 接收变处理量使用。从源代码的规范性和兼容性角度出发,如在客户端脚本里要索引某个对象,建议用 document.getElementById()方法,尽量不要直接使用NAME的值。有些标签是可以同时有name和id的,现在 根据规范,建议用id来标识元素。

下面给出Aaron找到的一个比较好的例子来说明一些问题(Aaron验证了其中的内容,并附加了Aaron版 测试代码)。

假设有了如下的html文档:

<form method="post" action="" name="testform">
<input type="text" name="textname" id=“textid” value="DEMO" />
</form>

在IE浏览器里,我们可以通过下面的方法引用文本框:

1:textname

2:testform.textname

3:document.all.textname

4:document.all.demoform.textname

5:document.forms[0].textname

6:document.forms["testform"].textname

7:document.forms["testform"].childNodes[0]

8:document.forms["testform"].elements[0]

9:document.getElementById("textid")

10: document.getElementsByName("textname")[0]

测试结果:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号