前不久在做项目时遇见了一个BUG。说实话IE这BUG我百度出来08年就有了,竟然到现在都没改。。。。醉了!
<body> <script language="javascript"> function changeValue() { var username = document.getElementById('username'); username.value = 'Whahaha'; } </script> <form action="IE_BUG2.html" method="get"> <p>name:<input type="text" name="username" /></p> <p>name2:<input type="text" id="username" name="name" /></p> <p><input type="button" value="改变" onclick="changeValue();" /></p> </form> </body>
很简单的一段代码,看上去似乎没有任何错误。但是在IE下点击改变按钮后,被改变值的对象居然是第一个name属性为username的input对象,而不是第二个id属性为username的对象。难道IE会自动把没设过ID的标签自动设一个和name一样的ID?
不管怎么说,问题还是要解决,有2个方法:
方法一:尽量避免在页面中出现name与id属性相同的对象。
方法二:利用JavaScript的特点,重写document.getElementById!
相关推荐
document.getElementById()对象和使用方法
主要是对各浏览器对document.getElementById等方法的实现差异进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助
document.getElementById(id):id;} var GetBy = function (id) { return "string" == typeof id ? document.getElementById(id) : id; }; 功能都是一样的。 这个函数的作用就是之后用到id选择器可以简写,至于...
^) 但是对于document.getElementsByName 与document.getElementById 这个两个方法,IE中是并没有严格区分 ID 与 Name 的,比如: [removed] function useGetElementsByNameWithId(id) { var eles = d
当初那种直接访问id的方法,逐渐被document.getElementById所替代。如果这年头还在用id访问元素,要么就是做程序里的内嵌网页,要么就是像铁道部那样的超境界仿古网站:) 当然只要保证你的用户都是用ie访问,这样的...
document.getElementById为空或不是对象的解决方法,一般情况下注意先内容后js.
document.all是IE 4.0及以上版本的专有属性,是一个表示当前文档的所有对象的娄组,不仅包括页面上可见的实体对象,还包括一些不可见的对象,比如html注释等等。在document.all数组里面,元素不分层次,是按照其在...
主要介绍了浅谈vue中document.getElementById()拿到的是原值的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
比如用_$(id)代替document.getElementById(id). 如果是纯粹的代替可以使用下面的代码 代码如下: function $(id){document.getElementById(id)} 个人比较推荐用prototype中对document.getElementById的定义: 代码如下...
统治者如果你厌倦了像这样声明 DOM 元素: var formNode , submitButtonNode , ... getElementById ( 'name' ) ; emailInputNode = document . getElementById ( 'email' ) ; console . log ( formNode , submi
js操作checkbox本人建议用document.getElementById(checkbox_id).checked不推荐使用jquery操作checkbox,感兴趣的朋友不要错过
写完js部分总是报 TypeError document.getElementById(…) is null 这个错误,代码看了几遍,语法上没找着什么错误,没办法,就在互联网上搜索了一下,才发现 document.getElementById 这个根据id找节点的语法写法...
【要点】document.getElementById方法在Firefox与IE中的区别。 如下,有一name=”txtVersion”的text控件: 代码如下: <div> <input type=”text” name=”txtVersion” size=”15″ value=”Version” maxlength=...
下面简单介绍下:第一个就是js中获取对象的方法,比较直接,如果一个页面有多个id,每次都要写这么长的document.getElementBy(“id”) 代码如下:document.getElementBy(“id”)document.getElementById的简写方式 ...
代码如下:function $(id){return document.getElementById(id); 上面的对于新版本的浏览器都是没有问题的,如果使用古老的浏览器,可以使用下面的函数 代码如下:function $(objectId) { if(document.getElementById ...
① document.getElementById 有时会抓name放过了id ,据说是IE的一个BUG; http://community.csdn.net/Expert/topic/4223/4223888.xml?temp=.1947443 页面中有 程序代码 <input type=”hidden” id=”hello8...