在ajax加载后刷新DOM元素

时间:2012-05-09 21:38:28

标签: javascript ajax dom refresh

以下是我遇到的问题的简要说明:

我从

开始
<container>
    <div id="foo"></div>
</container>

然后我使用Ajax将内容加载到容器div

<container>
    <div id="bar"></div>
</container>

然后重新加载原来的

<container>
    <div id="foo"></div>
</container>

但我不能再用javascript定位#foo,因为javascript认为它是一个新元素

实际的代码显然要复杂得多,我需要在ajax加载后刷新整个DOM,以便我可以使用之前存在的几个元素。

1 个答案:

答案 0 :(得分:1)

(问题在评论和问题编辑中回答。转换为社区维基答案。见Question with no answers, but issue solved in the comments (or extended in chat)

OP写道:

  

问题出现是因为我正在创建一个以元素作为变量的对象,所以当我再次调用该变量时,它所代表的实际元素不再存在,只是一个具有相同id的元素

     

解决:

     

感谢@felix在评论中提出的建议,我意识到这样做的方法是获取存储在对象变量中的元素的id,并使用它来定位加载ajax的内容中的新元素: / p>      

我的对象变量是根据原始内容创建的:playlist.trackdiv代表元素div#track1

     

当我稍后通过ajax div加载playlist.trackdiv时,不再代表div#track1,而是具有相同ID的元素的全新实例。解决方案是使用像playlist.trackdiv.i d这样的对象的id,然后使用它来定位新元素:document.getElementById(playlist.trackdiv.id)