简体   繁体   English

如何通过 javascript 在 html 中创建/获取自定义属性元素?

[英]How to create/get custom attribute element in html by javascript?

I have element same below:我在下面有相同的元素:

<div cutomsAttr.option1.option2="abc" id="custom">
</div>

I want to create and get custom attribute containing modifiers, if any.我想创建并获取包含修饰符的自定义属性(如果有)。

For example in cutomsAttr.option1.option2 , the modifiers object would be例如在cutomsAttr.option1.option2中,修饰符 object 将是

{ option1: true, option2: true }.

You can use data-* attributes, which allow us to store extra information on standard, semantic HTML elements without other hacks such as non-standard attributes or extra properties on DOM.您可以使用data-*属性,它允许我们在标准、语义 HTML 元素上存储额外信息,而无需其他技巧,例如非标准属性或 DOM 上的额外属性。

The syntax is simple.语法很简单。 Any attribute on any element whose attribute name starts with data- is a data attribute.属性名称以data-开头的任何元素上的任何属性都是数据属性。 Lets say you have a div and you want to store some extra information that doesn't have any visual representation.假设您有一个div ,并且您想要存储一些没有任何视觉表示的额外信息。 Just use data attributes for that like:只需使用data属性,例如:

<div id="custom" data-cutomsAttr="abc">
</div>

Then in your code, you can access its new data-cutomsAttr attribute value dataset property like:然后在您的代码中,您可以访问其新data-cutomsAttr属性值dataset属性,例如:

 const custom = document.querySelector('#custom'); console.log( custom.dataset.cutomsattr )
 <div id="custom" data-cutomsAttr="abc"> </div>

Note: That camelCase attribute cutomsAttr are converted to lowercase cutomsattr .注意: camelCase 属性cutomsAttr被转换为小写cutomsattr


Now, in order to get something solar to " Custom attribute containing modifiers ", you can just set multiple data attributes for the options like:现在,为了让“包含修饰符的自定义属性”得到一些太阳能,您可以为以下选项设置多个data属性:

<div id="custom" data-cutomsAttr="abc" data-option1="true" data-option2="false">
</div>

and then access them like:然后像这样访问它们:

 const custom = document.querySelector('#custom'); const { cutomsattr, option1, option2 } = custom.dataset console.log( cutomsattr, option1, option2 )
 <div id="custom" data-cutomsAttr="abc" data-option1="true" data-option2="false"> </div>


In case, if you don't want to set data-option1 & data-option2 all divs and make them optional with default value false , you can also do that like:如果您不想设置data-option1 & data-option2所有 div 并使用默认值false将它们设为可选,您也可以这样做:

 const custom = document.querySelector('#custom'); const { cutomsattr, option1 = false, option2 = false } = custom.dataset console.log( cutomsattr, option1, option2 )
 <div id="custom" data-cutomsAttr="abc" data-option1="true"> </div>

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

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