多次询问选择自定义标签的问题。
<div mytag="foo"></div>
将为$('[mytag]')
或$('div[mytag]')
。
现在我的问题是上面的内容不是HTML5。
但这有效:<div data-mytag="foo"></div>
。
现在我的假设是 - 如果我提供用户使用mytag="foo"
或 data-mytag="foo"
- 我可以这样做:$('[$mytag]')
。其中$ =所有以mytag为前缀的内容。
为什么这是错的,我该如何解决?
PS:
目前我正在做:$('[mytag], [data-mytag]')
看起来设计 - 瑕疵 ......
答案 0 :(得分:0)
这是错误的,因为您无法使用属性选择器动态匹配属性名称,只能使用属性值。你说“$ =所有以mytag为前缀的东西”,但没有这样的语法。
[mytag], [data-mytag]
本身并不是一个设计缺陷,因为它突出了原始标记中的设计缺陷。如果它困扰您,您可以确保用户尝试输入的任何自定义属性在没有提供前缀的情况下自动以“data-”为前缀,因此您永远不必担心缺少前缀的用户定义属性。 / p>