我已经了解到,HTML5包含一种使用数据前缀在元素上设置自定义属性的方法。不过,在JavaScript代码块中,如何阅读属性,我有点难以接受。我想这是我对DOMStringMap如何工作的解释。原生JS用于读取HTML5自定义数据属性
有人可以简化如何阅读以下示例html的属性。
<span data-complex-key="howtoRead" data-id="anId">inner</span>
尝试以下并没有真正按预期工作
spanEl.dataset['id'] // straight-forward and result is anId
spanEl.dataset['complex-key'] // undefined
spanEl.dataset['complex']['key'] // throws 'cannot read property of undefined'
spanEl.getAttribute('complex-key') // there's a null however,
spanEl.getAttribute('data-complex-key') // this variant seems to work
另一件事,让我奇怪的是,在CSS选择器似乎遵循哪个是我写的DOM中excact相同的模式,所以为什么从javascript读取这种情况并非如此。
例如,这将匹配
span[data-complex-key="howtoRead"] { color:green }
感谢帮助,还得到更多与HTML5的Canvas,视频和本地数据存储:)
您不应该在属性键BTW中使用破折号,在这里更好地选择驼峰型complexKey。 – m90