问题描述
HTMLDOM定义了多种查找元素的方法,除了getElementById()之外,还有getElementsByName()和getElementsByTagName()。不过,如果您需要查找文档中的一个特定的元素,最有效的方法是getElementById()。不过要注意的是使用getElementById时对不同的浏览器执行的结果可能是不同的,以下链接有相关说明http://blog.csdn.net/mmcgzs/archive/2007/03/25/1540250.aspx以下是我测试所用的代码:<html><head><title>document.alltest</title><scriptlanguage="javascript">functionview(){varobj=document.getElementById("ccc");alert(obj.value);obj=document.getElementById("aaa");alert(obj.value);}</script></head><body><formname="form1"id="f1"><!--<inputtype="text"name="aaa">--><inputtype="text"name="aaa"id="ccc"><inputtype="text"name="ccc"id="aaa"><inputtype="button"name="bbb"value="click"onclick="view();"></form></body></html>这个时候我在两个text中输入的值分别为:eee,wwwIE中测试结果为:eee,eee再看当我把<inputtype="text"name="aaa"id="ccc">中的id去除时,也即上面代码使用注释中的内容时我同样输入eee,wwwIE中测试结果为:www,eee仔细分析上面两个测试的结果:得出结论是:每执行getElementById一次,会将web页面中的所有表单按顺序遍历一次,同时查找id,name两个值,如果存在所要找的id则不再继续查找,如果没有相应的id与之对应则看name值是否与之对应,如果有相应的name与之对应,则不再继续查找。也就是说:ie执行document.getElementById(elementName)的时候,返回的是第一个name或者id等于elementName的对象,并不是仅按照ID来查找的。而同样的两个测试在firefox下第一个结果为eee,www,而第二个结果因为没有找到id="ccc"所以返回null对于这个结果还可参见blog:http://www.cnblogs.com/Jinglecat/archive/2006/10/18/532764.html他还对getElementById与getElementByName进行了分析,值得一看。
解决方案
解决方案二:
支持了。。。
解决方案三:
去掉id="ccc"LZ试过没?IE下getElementById能获到dom吗?
解决方案四:
推荐你学学jQuery吧,然后就不会纠结这些问题了
解决方案五:
如果用id起名,最好在页面上唯一
解决方案六:
没试过,不知道值到去看看
解决方案七:
顶一个,IE9不存在该问题。
解决方案八:
平时用jquery多.