火星浏览器(IE)又抽风了表现如下,在IE7下,使用document.getElementById('id')竟然可以获取到name = 'id' 的标签。如例子
<input type="text" name="aaa" id="ccc" >
<input type="text" name="ccc" id="aaa">
<input type="button" value="测试" onclick="view();"/>
<script type="text/javascript">
function view() {
var obj = document.getElementById("ccc");
alert(obj.value);
obj = document.getElementById("aaa");
alert(obj.value);
}
</script>
当你在IE7下运行此段代码,并未两个文本框输入不同的文字后按测试按钮,会弹出两个一样内容的提示框。
问题发现了,如何修正呢?借用KISSY1.3 RC版本中的办法
//**
*elem 为使用document.getElementById('id')获得的DOM对象
* id 就是id啦。通过这个函数可以判断获取的是否是那个真正的。
*/
function idEq(elem, id) {
// form !
var idNode = elem.getAttributeNode('id');
return idNode && idNode.nodeValue === id;
}
document.getElementsByName & document.getElementById 在IE与FF中不同实现
分享到:
相关推荐
在HTML5中,尽管`name`和`id`仍然保持原有的角色,但`id`的使用更加广泛,它在`<label>`元素的`for`属性中与表单控件关联,使得点击标签可以激活对应的输入元素。同时,`id`也常用于创建锚点链接,如`...
对于需要通过脚本访问的表单元素,即使在IE中,也建议使用id属性,因为直接通过id引用元素(如`MyInput.value`)比通过form引用name(如`document.forms[0].elements['MyInput']`)更为直接和高效。 关于id和name的...
- 在IE中,可以使用`eval(idName)`获取id为`idName`的对象,Firefox不支持。推荐使用`document.getElementById(idName)`。 6. **变量名与HTML对象id相同的问题** - Firefox中,HTML对象的id不会自动成为全局变量...
4. 获取ID为`idName`的对象:IE允许使用`eval(idName)`或`getElementById(idName)`,Firefox只支持`getElementById(idName)`。最佳实践是统一使用`getElementById(idName)`,并避免将HTML对象ID作为变量名,以防止...
IE中可以使用eval("idName")或getElementById("idName")来取得id为idName的HTML对象,而Firefox中只能使用getElementById("idName")来取得id为idName的HTML对象。解决方法是统一用getElementById("idName")来取得id...
在IE中可以使用 `eval(idName)` 来获取ID为 `idName` 的HTML对象,但在FF中无法这样做。 **解决方法:** 使用 `document.getElementById(idName)` 替代 `eval(idName)`。 ```javascript // 错误用法 var element = ...
在IE中,利用 eval(idName) 可以取得 id 为 idName 的 HTML 对象,但是在Firefox中不能。解决方法是使用getElementById(idName)代替eval(idName)。 5. Document.All 问题 IE 支持 document.all,但是Firefox 不...
在使用eval("idName")获取元素时,IE浏览器可以通过该方法或getElementById("idName")来获取。但在Firefox中,只能使用getElementById("idName")。因此,为了兼容性,推荐统一使用getElementById("idName")。 当...
- 问题描述:IE中可以用`eval(idName)`获取id为`idName`的对象,Firefox不支持。 - 解决方法:使用`document.getElementById(idName)`代替`eval(idName)`。 6. **变量名与HTML对象id相同的问题** - 问题描述:在...
### 浅谈HTML中ID与Name的区别及其应用场景 在HTML文档中,`id`与`name`是非常重要的属性,它们分别用于唯一标识一个元素以及命名一个元素。虽然这两个概念看起来相似,但它们在实际应用中有着本质的区别。下面将...
对于使用jQuery库的开发者来说,`clone`方法可以复制一个DOM元素,但如果你想在复制后更改新元素的`NAME`属性,你会发现这种方法在IE6中也无效。为了解决这个问题,你可以采取以下策略: 1. 不直接使用`clone`,...
4. **HTML对象的id作为对象名问题**:在IE中,可以直接通过`idName`访问HTML对象,但在Firefox中需要使用`document.getElementById("idName")`。 5. **用idName字符串取得对象问题**:IE支持`eval(idName)`获取ID为...
- **现有问题**:在IE中,可以使用`eval(idName)`来获取id为`idName`的HTML对象,但这种方法在Firefox中不起作用。 - **解决方法**:推荐使用`document.getElementById(idName)`来代替`eval(idName)`。这不仅可以...
- 用`eval("idName")`在IE中获取ID为"idName"的对象,但Firefox不支持。推荐使用`document.getElementById("idName")`。 8. 变量名与HTML对象ID相同: - 在Firefox中,变量名不会覆盖HTML对象ID,但在IE中可能会...
- IE中,`eval(idName)`可以获取id为`idName`的对象,但MF不支持。 - 应使用`getElementById(idName)`代替`eval(idName)`。 6. **变量名与HTML对象id相同的问题** - 在MF中,即使变量名与HTML对象id相同,也不会...
IE中,`eval(idName)`可被用作获取ID为`idName`的元素,但这种方式容易引发安全问题,且不推荐在现代Web开发中使用。应优先选择`getElementById(idName)`。 ### 6. 相同HTML ID的处理 在IE中,如果页面上存在多个...
- IE支持`eval("idName")`或`getElementById("idName")`来获取ID为`idName`的元素,但FF仅支持`getElementById("idName")`。最佳实践是使用`getElementById("idName")`。 5. **变量名与HTML对象ID相同** - IE将...
4. **ID查找**:IE下可以用`eval("idName")`或`getElementById("idName")`获取元素,而FF只支持`getElementById("idName")`。建议始终使用`getElementById("idName")`,以避免安全问题和兼容性问题。 5. **变量名与...
- **统一解决方案**: 在脚本中使用`document.getElementById("idName")`而非直接通过`document.idName`访问元素,这样可以避免因浏览器不同导致的问题。 #### 6. `const`关键字的支持 - **Firefox**: 支持使用`...
- **问题描述**:在IE中,可以使用`eval("idName")`或`getElementById("idName")`来获取指定ID的HTML元素;而在Firefox中,只支持`getElementById("idName")`。 - **解决方案**:推荐使用`getElementById("id...