Javascript 如何完全替换HTML元素上的数据对象
有没有更快的方法来替换elements数据对象中的所有内容Javascript 如何完全替换HTML元素上的数据对象,javascript,jquery,html,object,Javascript,Jquery,Html,Object,有没有更快的方法来替换elements数据对象中的所有内容 //get old data keys to delete var old_data = $(".f")[0].dataset; for (var key in old_data){ delete old_data[key]; } //new data to attach to `.f` element var new_data = $(".s")[0].dataset; for (var key in new_data){
//get old data keys to delete
var old_data = $(".f")[0].dataset;
for (var key in old_data){
delete old_data[key];
}
//new data to attach to `.f` element
var new_data = $(".s")[0].dataset;
for (var key in new_data){
$(".f").data(key, new_data[key]);
}
console.log($(".f").data());
我尝试过更简洁的变化,比如
//errors
$(".f").data() = {};
$(".f").data(new_data);
//doesn't delete old keys/values
var new_data = $(".s").data();
$(".f").data(new_data);
有更快的方法吗?有一个jQuery内置函数
jQuery.removeData(元素[,名称])
请参阅参考您需要同时使用和API [列表]-一个数组或空格分隔的字符串,用于命名数据段 删除。在没有参数的情况下调用时,.removeData()将删除所有 价值观 更新 由于
.removeAttr([name])
会“强制”您一次移除一件,因此您也可以使用:
.removeData( [name] );
请记住,[name]
的格式分别为数据-
和
。例如,要删除数据myid,请使用:
.removeAttr( 'data-myid' ); //and
.removeData( 'myid' );
@Karl AndréGagnon不幸的是,这似乎只会删除jQuery显式设置的数据属性,而不是内联
data sth=“123”
谢谢。您是否尝试删除数据集本身,如delete$(.f”)[0].dataset
?不删除数据-*属性不幸的是,它似乎只删除使用jQuery显式设置的数据属性,而不是内联数据sth=“123”谢谢。我猜不会更快。removeAttr([name])代码>工作。.removeData([list])没有运气代码>。谢谢你的帮助!由于.removeAttr([name])
强制您一次移除一块,因此您最好使用.removeatta([name])
。请记住,[name]
的格式分别为数据-
和
。例如,要删除数据myid
请使用.removeAttr('data myid')
和.removeData('myid')
。
.removeAttr( 'data-myid' ); //and
.removeData( 'myid' );