繁体   English   中英

阅读html的elements属性像数组一样吗?

[英]Read html's elements attributes like an array?

我正在考虑开发Web组件表单,所以...我想知道自己是否可以从html元素中读取属性。 例如:

<my-component input="3" data-input='"name", "address", "email"' textarea="1" data-textarea='"mensaje"'></my-component>

<script>
while i <= elementattributes.length{
elementattributes[i] 
} 
</script>

我知道我可以通过.getAttribute访问,但是这种方式将花费更多的代码...我只是想成为一个聪明的人:P

抱歉,我的英语不好...我希望你能理解我想做的事:P :)

您可以使用dataset获取特定的data属性

 var data = document.querySelector('my-component').dataset.input.split(','); data.forEach(function(e) { console.log(e) }) 
 <my-component input="3" data-input='name,address,email' textarea="1" data-textarea='"mensaje"'></my-component> 

如果要从元素返回所有属性,则可以使用返回类似数组的对象的属性,但是可以从该attributes创建具有name-value对象

 var data = document.querySelector('my-component').attributes, attr = {}; Array.from(data).forEach(function(e) { attr[e.name] = e.value; }); console.log(attr['data-input']); 
 <my-component input="3" data-input='name,address,email' textarea="1" data-textarea='mensaje'></my-component> 

如果要获取所有属性及其值,则可以执行以下操作:

 function getElementAttrs(el) { var attributes = [].slice.call(el.attributes); return attributes.map(function(attr) { return { name: attr.name, value: attr.value } }); } var allAttrs = getElementAttrs(document.querySelector('my-component')); console.log(allAttrs); 
 <my-component input="3" data-input='name,address,email' textarea="1" data-textarea='"mensaje"'></my-component> 

函数getElementAttrs向您返回一个对象数组,其中具有属性名称-值对作为对象上的键,以便您可以在其上循环,也可以按键拉动。

您可以只使用.attributes:

document.getElementById("ELEMENT_ID").attributes

这将返回一个包含每个属性及其关联值的对象。 然后,您可以为特定属性建立属性数组的索引,并使用.value作为其对应的值。

暂无
暂无

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

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