2012-05-09 146 views
2

這裏後刷新DOM元素,就是我遇到的問題的簡要介紹:AJAX負荷

我開始了與

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

然後我將內容加載到容器div阿賈克斯

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

然後將原件重新裝回

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

但我如JavaScript認爲這是一個新的元素

的實際代碼顯然更爲複雜,我需要刷新整個DOM的AJAX負荷後,這樣我可以用再不能定位#foo用JavaScript了幾個以前在那裏的元素。

+0

所以你分離#foo從DOM和重新連接後,它? – Musa

+0

你在哪裏javascript?當您呈現的只是HTML時,很難調試javascript。 – scrappedcola

+1

「target #foo」是什麼意思?如果元素在DOM中,document.getElementById('foo')'肯定會工作。 –

回答

1

(問題回答的意見和問題,編輯轉換爲社區維基答案見Question with no answers, but issue solved in the comments (or extended in chat)。)

的OP寫道:

問題就出現了,因爲我創造與元素的對象作爲一個變量,所以當我再次撥打該變量,它代表不再存在實際的元素,只是具有相同ID的元素

解決:

感謝@felix在評論中的建議,我意識到要做到這一點的方法是獲取存儲在對象變量中的元素的id,並使用它在ajax加載的內容中定位新元素:

從原始內容創建

我的對象變量:playlist.trackdiv它表示元件div#track1

當我加載div在以後通過Ajax playlist.trackdiv不再代表div#track1但具有相同id的元素的完全新實例。解決的辦法是使用這樣playlist.trackdiv.i對象的ID,然後在三維目標使用新的元素:document.getElementById(playlist.trackdiv.id)