gpt4 book ai didi

javascript - getElementById() 和 getElementByName() 对于 IE9 是否相同?

转载 作者:行者123 更新时间:2023-11-28 00:47:35 25 4
gpt4 key购买 nike

今天我在 IE9 上发现了一个奇怪的行为。(我正在开发一个旧的应用程序,该应用程序在 IE9 上运行良好,以使其与 Firefox 和 Chrome 兼容)我编写了这段代码。

<html>
<head>
<script>
function test(){
var o1 = document.getElementById("t0_ship_bill");
console.log(o1.checked);
console.log("Its executed.");
}
</script>
</head>
<body>
<button onClick="test()">Test</button>
<input type="Checkbox" class="checkbox" name="t0_ship_bill" >
</body>
</html>

你可以在 test() 函数中看到我使用了 getElementById("t0_ship_bill") ,其中在 html 中没有使用该 id 定义这样的元素。仍然 IE9 不会抛出错误,它能够通过名称获取元素。

输出:

火狐:类型错误:o1 为空

IE9:日志:true

日志:已执行。

任何人都知道 IE9 如何能够在 Firefox 和 Chrome 抛出错误的情况下获取没有 ID 的元素吗?

这是我的应用程序在 Firefox 上的许多行上抛出错误的主要原因,而 as 在 IE 上运行良好。

最佳答案

这是 IE 的一个“功能”。他们的 getElementById 实现最初搜索具有给定 id 属性的元素。如果没有找到,它就会通过 name 属性搜索元素,这违反了规范。

在您的示例中,Firefox 的行为是正确的,因为您的 input 没有 id 属性。

如果您想按名称查找元素,请使用 getElementsByName() 方法。

关于javascript - getElementById() 和 getElementByName() 对于 IE9 是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27187613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com