如何使用jQuery复制元素的数据?
这个问题在这里已经有了答案:
要真正只复制数据,*这非常简单:
$(destination).data( $(source).data() );
这是因为使用.data()没有参数将返回所有数据片段的键值对象,反之亦然,您也可以使用键值对象一次更新多个片段数据。
更新2017年5月25日
在没有jQuery的JavaScript中,一个聪明的选择似乎是:
Object.assign(destination.dataset, source.dataset);
回答:
a)迭代数据项
$.each(element.data(), function (name, value) {
// ... do something
})
如果element是一个DOM元素,使用这个:
$.each($.data(element), function (name, value) {
// ... do something
})
为了给出另一个替代方案,即不是克隆整个对象,可以将数据对象复制到包含名称/值对的新数组中:
function getOriginalElementData(domElementJQueryObject){
var originalElementData = new Array();
$.each(domElementJQueryObject.data(),function(name,value) {
originalElementData.push({"name":name,"value":value});
});
return originalElementData;
}
要将数据恢复到另一个对象:
function restoreOriginalElementData(domElementJQueryObject,originalElementData){
for(var i=0;i<originalElementData.length;i++){
domElementJQueryObject.data(originalElementData[i].name,originalElementData[i].value);
}
}
通过数据项迭代的部分是从这个答案中复制的:jQuery循环通过data()对象
链接地址: http://www.djcxy.com/p/6941.html