2012-01-06 2 views
1

Я устанавливаю переменную на полное содержимое <tbody>, после фильтрации таблицы я хочу иметь возможность вернуться к исходному полному содержимому <tbody>. В настоящее время, когда я пытаюсь вернуться к исходному содержимому, jQuery лишает <script><tr> и <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

ответ

1

Техника вам» повторное использование должно работать, о чем свидетельствует следующий jsFiddle:

http://jsfiddle.net/GbSrV/

При запуске скрипки ознакомьтесь с консолью JavaScript. Вы заметите, что значения, возвращаемые html(), как и ожидалось.

Чтобы отладить код, проверьте фактическую DOM с помощью инструментов разработчика вашего браузера. Как выглядит твой до, во время и после рутины?

Кроме того, какой именно код вы используете для проверки восстановленного содержимого тела? Я предполагаю, что ваши тыкать восстановленное значение в вашем отладчике (или эквивалент) с помощью:

$("tbody").html() 

Если это не так, дайте нам знать.

Вы должны быть в состоянии убедиться, что ваш исходный код работает правильно. Однако, если вы хотите, вы можете попробовать следующую альтернативу реализации:

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

Альтернативная реализация, которую вы предложили, отлично работает, спасибо! Я проверял DOM, и каждый раз некоторые теги будут удалены, в то время как другие будут оставлены, например. . Еще раз спасибо за ваше время! – Alex

Смежные вопросы