我需要将数据值从一个元素复制到另一个元素,但jQuery的clone()方法不会克隆数据.我无法迭代数据:
element.data().each
因为它data()
是一个函数而不是一个jQuery对象.似乎我必须保留一个单独的属性名称列表并引用它们,但这似乎太hacky.那我该怎么做呢?
a)迭代数据项
或
b)clone()
包含数据的元素.
要真正只复制数据 - *,这非常简单:
$(destination).data( $(source).data() );
这是因为使用.data()没有参数将返回所有数据片段的键值对象,反之亦然,您还可以使用键值对象一次更新多个片段数据.
2017年5月25日更新
JavaScript中没有jQuery的聪明替代方案似乎是:
Object.assign(destination.dataset, source.dataset);