Это может показаться странным запросом, и это довольно необычно, но это проблема, которую я пытаюсь решить.
Скажем, у вас есть элемент 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 } //...
Вышеприведенный пример является лишь примером. Было бы идеально, если бы сериализация выглядела очень похожей на исходный пример, но, пока она делает то же самое, что и оригинал, мне было бы хорошо с этим.