【发布时间】:2014-02-12 16:54:44
【问题描述】:
我刚刚注意到 document.getElementById("one_id") 在使用其 innerHTML 属性修改其父对象之前和之后返回不同的对象。
这发生在我测试过的每一个浏览器中。这是为什么?是什么原因?
这是一个示例,您可以自己测试和查看:
<html>
<head>
<title>Test</title>
<script>
function test()
{
var myDiv = document.createElement("div");
myDiv.id = "myDivID";
var bodyTag = document.getElementsByTagName("body")[0];
bodyTag.appendChild(myDiv);
var myDivIDBeforeAdding = document.getElementById("myDivID");
bodyTag.innerHTML += "something added";
var myDivIDAfterAdding = document.getElementById("myDivID");
if (myDivIDBeforeAdding != myDivIDAfterAdding) //This is always true!
{
bodyTag.innerHTML += "<br />myDivIDBeforeAdding = " + myDivIDBeforeAdding;
bodyTag.innerHTML += "<br />myDivIDAfterAdding = " + myDivIDAfterAdding;
bodyTag.innerHTML += "<br />myDivIDBeforeAdding and myDivIDAfterAdding are different!!!";
}
}
</script>
</head>
<body onLoad="test();">
</body>
提前谢谢你。
干杯,
琼
【问题讨论】:
-
你有什么不同,我查了一下,大部分都是sasme...
-
注意 if 子句。每次都是如此,所以这意味着每个变量中存储的对象都是不同的。
标签: javascript html dom innerhtml getelementbyid