自定义属性只能用element.getAttribute(“属性”)的作品,而不是“element.

2019-07-20 08:20发布

我刚才注意到,如果我给一个自定义属性的HTML元素,例如:

<input type="button" id="my_button" custom_attr="custom_attr_text" value="value_text" />

然后我可以这样获取:

document.getElementById("my_button").getAttribute("custom_attr");

它将返回"custom_attr_text" ,但如果我这样做

document.getElementById("my_button").custom_attr;

然后返回undefined

我还注意到,与在建的属性(例如valueid ),上述两个工作正常! 可能有人请解释为什么会出现这种情况?

Answer 1:

只有某些标准属性被直接映射到属性。 这不是为非标准(自定义)属性定义的行为。

使用自定义属性的向前兼容的方法是用前缀他们data-

<input ... data-custom_attr="custom_attr_text" ... />

然后,他们成为HTML5兼容的浏览器可用:

element.dataset.custom_attr

但是,在传统的浏览器,你仍然需要使用.getAttribute()



文章来源: custom attribute works only with element.getAttribute(“attribute”) but not “element.attribute”