Javascript 将DOM元素引用从DOM中删除时更改为空引用
如果使用Javascript 将DOM元素引用从DOM中删除时更改为空引用,javascript,dom,getelementbyid,removechild,Javascript,Dom,Getelementbyid,Removechild,如果使用document.getElementById在变量中存储DOM元素,然后使用removeChild方法从DOM中删除该元素,则存储在变量中的对象不会更新为空引用。例如: <div id="a"> </div> <script> var a = document.getElementById('a'); alert(a); // Alerts "[object HTMLDivElement]". a.parentNode.remo
document.getElementById
在变量中存储DOM元素,然后使用removeChild
方法从DOM中删除该元素,则存储在变量中的对象不会更新为空引用。例如:
<div id="a">
</div>
<script>
var a = document.getElementById('a');
alert(a); // Alerts "[object HTMLDivElement]".
a.parentNode.removeChild(a);
alert(a); // Still alerts "[object HTMLDivElement]".
</script>
var a=document.getElementById('a');
警告(a);//警报“[object HtmlDevice]”。
a、 parentNode.removeChild(a);
警告(a);//仍然会提醒“[object HtmlLevel]”。
是否有任何方法可以使存储在a
变量中的DOM元素引用更“活跃”,因为它可以检测元素何时从DOM中删除,从而更新为null
或其他任何内容
提前谢谢。您不能,因为您存储在变量中,需要检查时只需调用var a=document.getElementById('a') var a=document.getElementById('a') 警告(a);//警报“[object HtmlDevice]” a、 parentNode.removeChild(a) a=document.getElementById('a') 警告(a);//“未定义”
不,没有,这是它应该工作的方式。谢谢你的反馈。出于某种原因,我认为存储在变量中的DOM元素对象应该是“活动的”,并相应地改变。但事实并非如此。这只是意味着在使用DOM元素之前,我必须在代码中插入一个额外的检查来验证它是否确实有效。非常感谢。