这似乎是一个奇怪的要求,这是非常普通的,但这是一个我想要解决的挑战。
假设你有一个DOM元素,它由HTML和一些应用的CSS组成,还有一些JS事件监听器。我想克隆这个元素(并且所有应用的CSS和JS),将其序列化为一个字符串,我可以在数据库中保存以在将来的请求中添加到DOM。
我知道jQuery有一些这样的方法(比如$ .css()来获取计算的样式),但是我该如何执行所有这些操作,并将其转换成可以保存在数据库中的字符串?
更新:这是一个示例元素:
With some content
#test_div { width: 200px }
.some_class { background-color: #ccc }
$('#test_div').click(function(){
$(this).css('background-color','#0f0');
});
…可能是一个示例序列化:
var elementString = $('#test_div').serializeThisElement();
这将导致一个字符串看起来像这样:
class="some_class"
style="width:200px; background-color:#ccc"
οnclick="javascript:this.style.backgroundColor='#0f0'">
With some content
所以我可以发送它作为一个AJAX请求:
$.post('/save-this-element', { element: elementString } //...
以上只是一个例子。如果序列化可能看起来与原始示例非常相似,那么这将是理想的,但只要它与原始版本相同,我会很好。