Это может показаться странным запросом, и это довольно необычно, но это проблема, которую я пытаюсь решить.
Допустим, у вас есть элемент DOM, который состоит из HTML и примененного CSS, а также некоторых слушателей событий JS. Я хотел бы клонировать этот элемент (и все применяемые CSS и JS), сериализовать его как строку, которую можно сохранить в базе данных для добавления в DOM в будущем запросе.
Я знаю, что в jQuery есть несколько таких методов (например, $ .css () для получения вычисляемых стилей), но как мне сделать все эти вещи и превратить их в строку, которую я могу сохранить в базе данных?
Обновление: Вот пример элемента:
<div id="test_div" class="some_class">
<p>With some content</p>
</div>
<style>
#test_div { width: 200px }
.some_class { background-color: #ccc }
</style>
<script>
$('#test_div').click(function(){
$(this).css('background-color','#0f0');
});
</script>
... и, возможно, пример сериализации:
var elementString = $('#test_div').serializeThisElement();
, что приведет к строке, которая будет выглядеть примерно так:
<div id="test_div"
class="some_class"
style="width:200px; background-color:#ccc"
onclick="javascript:this.style.backgroundColor='#0f0'">
<p>With some content</p>
</div>
чтобы я мог отправить его как запрос AJAX:
$.post('/save-this-element', { element: elementString } //...
Выше приведен только пример. Было бы идеально, если бы сериализация выглядела очень похоже на исходный пример, но, пока она воспроизводит то же самое, что и оригинал, я бы с этим согласился.