【问题标题】:jQuery select by custom attribute prefix with and without data-jQuery 通过自定义属性前缀选择有和没有数据-
【发布时间】:2015-12-15 11:10:12
【问题描述】:

选择自定义标签的问题被问了很多次。

<div mytag="foo"></div> 将是 $('[mytag]')$('div[mytag]')

现在我的问题是关于上述不是有效的 HTML5 的事实。 然而,这将是有效的:<div data-mytag="foo"></div>

现在我的假设是-如果我让用户使用mytag="foo" data-mytag="foo"- 我可以这样做:$('[$mytag]')。其中 $ = 以 mytag 为前缀的所有内容。

为什么会出错,我该如何解决?

PS:
目前我正在做:$('[mytag], [data-mytag]') 看起来 design-flawish...

【问题讨论】:

标签: jquery html jquery-selectors


【解决方案1】:

这是错误的,因为您不能使用属性选择器动态匹配属性名称,只能匹配属性值。你说“$ = 以 mytag 为前缀的所有内容”,但没有这样的语法。

[mytag], [data-mytag] 本身并不完全是一个设计缺陷,而是它突出了原始标记中的一个设计缺陷。如果它困扰您,您可以确保用户尝试输入的任何自定义属性在尚未提供前缀的情况下自动以“data-”为前缀,因此您不必担心用户定义的属性缺少前缀。

【讨论】:

  • 哦,谢谢。我没有意识到这一点。您基本上是说调用data-mytag总是 返回mytag 的值? ...让我们试一试... :-)
  • @bvl:不,我是说一开始就不允许mytag。如果用户尝试添加一个名为 mytag 的属性,则在标记中将其反映为 data-mytag
猜你喜欢
  • 2017-11-07
  • 2014-09-15
  • 2014-09-29
  • 1970-01-01
  • 1970-01-01
  • 2013-09-03
  • 1970-01-01
  • 1970-01-01
  • 2015-02-06
相关资源
最近更新 更多