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

假设我有这段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>

并且我希望在定义时使用数据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)

有任何想法吗?

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

**编辑**

我知道$(“#container”).find(“a [data-some-info]”).这不是我在这里提出的问题.如果有一个data selector,它为什么会这样?

解决方法

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

替代方法:

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

相关文章

1.第一步 设置响应头 header(&#39;Access-Control-Allow...
$.inArray()方法介绍 $.inArray()函数用于在数组中搜索指定的...
jquery.serializejson.min.js的妙用 关于这个jquery.seriali...
JS 将form表单数据快速转化为object对象(json对象) jaymou...
jQuery插件之jquery.spinner数字智能增减插件 参考地址:http...