前不久在做项目时遇见了一个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!
相关推荐
var $ = document.getElementById.bind(document); ``` 需要注意的是,`bind`方法在IE9及更高版本、Firefox、Chrome等现代浏览器中才被支持。 除了`getElementById`之外,其他一些与`document`或`window`对象...
document.getElementById()对象和使用方法
总的来说,本篇内容针对在Vue中使用`document.getElementById()`时遇到的问题提供了深入的分析和具体的解决方案,帮助开发者更好地理解Vue的工作原理以及如何在Vue项目中合理使用原生JavaScript DOM操作方法。...
document.getElementById为null 原因: var titab=document.getElementById(“titletab”);没有取到对象 解决办法: 1.在错误语句的下面加上alert(titab);调试语句,看看是否有消息框弹出 2.如果没有弹出,检查...
^) 但是对于document.getElementsByName 与document.getElementById 这个两个方法,IE中是并没有严格区分 ID 与 Name 的,比如: [removed] function useGetElementsByNameWithId(id) { var eles = d
这个错误表示`document.getElementById`方法未能找到匹配给定ID的元素,因此返回`null`,而当你尝试调用`null`上的任何属性或方法时,JavaScript会抛出此类型错误。 ### 错误原因 1. **元素未加载**:在使用`...
① document.getElementById 有时会抓name放过了id ,据说是IE的一个BUG; http://community.csdn.net/Expert/topic/4223/4223888.xml?temp=.1947443 页面中有 程序代码 <input type=”hidden” id=”hello8...
例如,`document.getElementById('mes')` 将返回ID为 'mes' 的第一个元素。如果页面中没有与该ID匹配的元素,则返回 `null`。 在第一个示例中,`<script>` 标签位于 `<head>` 部分,其中的 JavaScript 代码在页面...
其中`document.getElementsByName()`与`document.getElementById()`是常用的两种方法,它们分别通过元素的`name`属性和`id`属性来选取元素。本文将详细介绍这两种方法的用法,并进行深入比较。 #### 一、document....
了解这些基本的JavaScript执行机制和DOM加载流程,能帮助开发者避免`TypeError: document.getElementById(...) is null`这类常见的错误,提高代码的健壮性和用户体验。记住,良好的编程习惯和对文档结构的理解是解决...
document.all是IE 4.0及以上版本的专有属性,是一个表示当前文档的所有对象的娄组,不仅包括页面上可见的实体对象,还包括一些不可见的对象,比如html注释等等。在document.all数组里面,元素不分层次,是按照其在...
在讨论原生JavaScript(简称js)操作复选框(checkbox)时,常用的方法包括使用document.getElementById()函数来获取特定ID的DOM元素,并操作其checked属性来控制复选框的选中状态。这种方法相较于使用jQuery库中的...
如果条件为真,即 `id` 是一个字符串,那么使用 `document.getElementById(id)` 来获取HTML文档中ID属性与 `id` 相同的元素。这是DOM操作中常用的方法,用于查找页面上的特定元素。如果 `id` 不是字符串,三元运算符...
比如用_$(id)代替document.getElementById(id). 如果是纯粹的代替可以使用下面的代码 代码如下: function $(id){document.getElementById(id)} 个人比较推荐用prototype中对document.getElementById的定义: 代码如下...
然而,在早期的IE版本中,尤其是在IE6及更早版本,`document.getElementById`的行为相对宽松,即使元素只定义了`name`属性而没有`id`属性,它仍然可以被找到。例如: ```html <input type="text" name=...
统治者如果你厌倦了像这样声明 DOM 元素: var formNode , submitButtonNode , ... getElementById ( 'name' ) ; emailInputNode = document . getElementById ( 'email' ) ; console . log ( formNode , submi