我了解到 HTML5 包含一种使用 data- 前缀在元素上设置自定义属性的方法。但是,在如何在 javascript 代码块期间读取属性方面,我有点担心。我想这是我对 DOMStringMap 工作原理的解释。
有人可以简化如何阅读以下示例 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 中编写的完全相同的模式,那么为什么从 javascript 中读取不是这种情况。
例如,这将匹配
span[data-complex-key="howtoRead"] { color:green }
感谢您的帮助,对 HTML5 画布、视频和本地数据存储的了解仍然越来越多:)