jQuery UI:数据选择器不返回HTML5数据属性

Yan*_*hon 5 jquery jquery-ui selector

假设我有这段HT​​ML:

<div id="container">
   <ul>
       <li><a href="#" data-some-info="foo">Bar</a>
       <!-- repeating a few like the one -->                          -->
       <!-- above for a while ...        -->
   </uL>
</div>
Run Code Online (Sandbox Code Playgroud)

并且我希望在some-info定义数据时将所有锚元素应用于所有锚元素.

我只想了解为什么会出现这种行为(这是一个错误吗?)

$("#container").find("a:data(some-info)").size();  // -> 0
$("#container").find("a").data("some-info");       // -> "foo"
$("#container").find("a:data(some-info)").size();  // -> 1 (actual expected val)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

更多信息:我正在使用jQuery 1.9.0和jQuery UI 1.9.2

**编辑**

我知道有关$("#container").find("a[data-some-info]").这不是我在这里提出的问题.如果有数据选择器,为什么它会这样?

Ply*_*ynx 1

:data 选择器不是 JQuery 核心的一部分。这可能是一个错误,但 JQuery 文档说 HTML5 数据属性被拉入内部 JQuery 数据对象(大概是在调用 时.data),而不是作为:data伪选择器的一部分(根据 JQuery UI 文档查询内部数据表示照原样,没有提及 HTML5 数据属性)

替代方法:

$("#container").find("a[data-some-info='foo']")如果在数据属性上设置了任何内容,则使用, 或.find("a[data-some-info]")。