简体   繁体   English

如何在 Object.assign() 中分配数据集?

[英]How to assign dataset in Object.assign()?

Is it possible to assign dataset attributes with Object.assign()?是否可以使用 Object.assign() 分配数据集属性? For example like this:例如像这样:

Object.assign(document.getElementById('test'), {
    id: 'test',
    dataset: { mydata: 'test' },
})

Update: at least this works for assigning multiple dataset:更新:至少这适用于分配多个数据集:

Object.assign(document.getElementById('test').dataset, {
    mydata: 'test',
})

No.不。

The dataset property is readonly so you can't overwrite it. dataset属性是只读的,所以你不能覆盖它。

If you could, then your attempt will break it because the value needs to be a DOMStringMap object and not a plain object.如果可以,那么您的尝试将破坏它,因为该值需要是DOMStringMap对象而不是普通对象。

You can use Element.setAttribute() function for adding HTMLElement attribtue.您可以使用Element.setAttribute()函数来添加HTMLElement属性。 Check it out-一探究竟-

const el = document.getElementById('test');
const dataset = {name: 'john', age: 34, gender: 'male'};

for (const prop in dataset) {
    el.setAttribute(`data-${prop}`, dataset[prop]);
}
  • Here an object dataset with data name and value is declared.这里声明了一个具有数据名称和值的对象dataset
  • Iterate throw the object using for ... in loop and using setAttribute function set the data attribtue.使用for ... in循环迭代抛出对象并使用setAttribute函数设置数据属性。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM