Yan*_*hon 5 jquery jquery-ui selector
假设我有这段HTML:
<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]").这不是我在这里提出的问题.如果有数据选择器,为什么它会这样?
:data 选择器不是 JQuery 核心的一部分。这可能是一个错误,但 JQuery 文档说 HTML5 数据属性被拉入内部 JQuery 数据对象(大概是在调用 时.data),而不是作为:data伪选择器的一部分(根据 JQuery UI 文档查询内部数据表示照原样,没有提及 HTML5 数据属性)
替代方法:
$("#container").find("a[data-some-info='foo']")如果在数据属性上设置了任何内容,则使用, 或.find("a[data-some-info]")。