分配的属性显示为未定义

时间:2012-11-21 16:52:35

标签: javascript properties

我在做ajax。在某个时刻,我将someproperty分配给由id选择的DOM对象(假设它是12345),并确认已使用alert()分配了值:

window.document.getElementById('12345').someproperty = true;
alert(window.document.getElementById('12345').someproperty);

此时,警报会正确显示true。然后,稍后我会调用一个javascript命令来查找对象的someproperty值:

alert(window.document.getElementById('12345').someproperty);

这一次显示undefined。为什么价值没有定义?

1 个答案:

答案 0 :(得分:1)

我感觉你在查找.innerHTML之间的某个地方做了一些讨厌的.someproperty

分配给.innerHTML会破坏当前的DOM,并将其替换为通过解析您提供的HTML字符串获得的新DOM。所以我猜你正在摧毁整个部分,并用一个几乎相同的新部分替换它。这自然会消除原始DOM中的有状态信息。

您应修改需要更新的单个DOM元素,而不是使用.innerHTML完全删除它们。