getElementById(idname) 如何找到正确的元素,但 element.id 将 id 显示为“”而不是 "idname"?
How can getElementById(idname) find the right element and yet element.id shows the id as "" and not as "idname"?
我找了又找,没有找到类似的情况和答案。
我可以使用 getElementById(idname) 访问一个元素,甚至可以访问它的值,但是当我尝试访问它的 id 时,它显示为“”而不是 "idname"。这怎么可能?
示例:
console.log(document.getElementById("test").value); //is shown as Hello World
console.log(document.getElementById("test").id); //is shown as "" and not as "test"
编辑:我找到了答案,见下文。
我做了一些测试,发现了为什么 document.getElementById(idname) 检索元素而不是它的 id。我们的测试浏览器是在兼容模式下运行的 IE11(该项目最初是针对 IE8 的),IE 可以使用 document.getElementById 获取 name 属性,因此检索到元素但没有 id。
一个简单的例子:
<input name = "test" value = "test value"></input>
<input id = "test2"></input>
Javascript:
console.log("test id :" + document.getElementById("test").id);
console.log("test2 id :" + document.getElementById("test2").id);
console.log("test value :" + document.getElementById("test").value);
结果:
test id :
test2 id :test2
test value :test value
我找了又找,没有找到类似的情况和答案。
我可以使用 getElementById(idname) 访问一个元素,甚至可以访问它的值,但是当我尝试访问它的 id 时,它显示为“”而不是 "idname"。这怎么可能?
示例:
console.log(document.getElementById("test").value); //is shown as Hello World
console.log(document.getElementById("test").id); //is shown as "" and not as "test"
编辑:我找到了答案,见下文。
我做了一些测试,发现了为什么 document.getElementById(idname) 检索元素而不是它的 id。我们的测试浏览器是在兼容模式下运行的 IE11(该项目最初是针对 IE8 的),IE 可以使用 document.getElementById 获取 name 属性,因此检索到元素但没有 id。
一个简单的例子:
<input name = "test" value = "test value"></input>
<input id = "test2"></input>
Javascript:
console.log("test id :" + document.getElementById("test").id);
console.log("test2 id :" + document.getElementById("test2").id);
console.log("test value :" + document.getElementById("test").value);
结果:
test id :
test2 id :test2
test value :test value