2

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

我从

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

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

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

然后重新加载原件

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

但是我不能再#foo使用javascript作为目标,因为javascript认为它是一个新元素

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

4

1 回答 1

1

(在评论和问题编辑中回答的问题。转换为社区 wiki 答案。请参阅没有答案的问题,但问题在评论中解决(或在聊天中扩展)

OP写道:

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

解决了:

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

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

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

于 2015-01-28T21:41:00.927 回答