我在做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
。为什么价值没有定义?
答案 0 :(得分:1)
我感觉你在查找.innerHTML
之间的某个地方做了一些讨厌的.someproperty
。
分配给.innerHTML
会破坏当前的DOM,并将其替换为通过解析您提供的HTML字符串获得的新DOM。所以我猜你正在摧毁整个部分,并用一个几乎相同的新部分替换它。这自然会消除原始DOM中的有状态信息。
您应修改需要更新的单个DOM元素,而不是使用.innerHTML
完全删除它们。