2012-01-06 214 views
1

我在過濾表格後設置變量爲<tbody>的全部內容,我希望能夠返回到<tbody>的原始完整內容。目前,當我嘗試更改回原始內容時,jQuery正在剝離<script><td>元素。jQuery .html()刪除html元素

JavScript

var contents= $("tbody").html(); 
//load of other functions 
$("tbody").html(contents); 

內容看起來有點像這樣:

<script>alert("Hello");</script> 
<tr> 
    <td>A value</td> 
    <td>Another value</td> 
</tr> 

當我試圖恢復到這個內容,我得到:

A value 
Another value 
+0

那麼究竟是$(「tbody」)。html()放在你的代碼結尾的字符串結果是什麼?這是你最後的輸出顯示,有一些結果沒有HTML標籤呢? – nsanders 2012-01-06 19:22:42

回答

1

的技術,你」重新使用應該工作,如以下jsFiddle所示:

http://jsfiddle.net/GbSrV/

運行小提琴時,請查看JavaScript控制檯。您會注意到由html()返回的值如預期的那樣。

要調試您的代碼,請使用瀏覽器的開發工具檢查實際的DOM。在例行公事之前,之中和之後,tbody是什麼樣的?

此外,什麼確切的代碼是您使用檢查恢復TBODY內容是什麼?我假設你使用你的調試器(或同等學歷)戳恢復值:

$("tbody").html() 

如果不是的話,讓我們知道。

你應該能夠讓你的原代碼正常工作。但是,如果你想要的話,你可以嘗試下面的實現方法:

var contents$ = $("tbody").children().clone(); 
// load of other functions 
$("tbody").empty().append(contents$); 
+0

你提供的替代實現工作完美,謝謝!我一直在檢查DOM,每次某些標籤都會被刪除,而其他標籤則會被刪除。 。感謝你的寶貴時間! – Alex 2012-01-07 11:58:17