:data()选择器应该被识别?

时间:2014-05-06 12:51:08

标签: jquery jquery-ui

我正在使用jquery-1.11.1,我尝试使用

中描述的:data选择器

https://api.jqueryui.com/data-selector/

尝试找到具有某个键的所有元素,如下所示:

var elements = $(':data(kendoMobileScroller)');

但我得到的只是一个错误说:

  

错误:语法错误,无法识别的表达式:unsupported pseudo:data

不应该有这样的选择器吗?

3 个答案:

答案 0 :(得分:12)

您需要包含jQuery UI才能使:data伪选择器正常工作,例如:

<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoothness/jquery-ui.css" />
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script>

或者只是扩展jQuery:

$.extend( $.expr[ ":" ], {
    data: $.expr.createPseudo ?
        $.expr.createPseudo(function( dataName ) {
            return function( elem ) {
                return !!$.data( elem, dataName );
            };
        }) :
        // support: jQuery <1.8
        function( elem, i, match ) {
            return !!$.data( elem, match[ 3 ] );
        }
});

DEMO

答案 1 :(得分:1)

我知道这是前一段时间被问到的,但是对于任何有机会的人你都可以使用css属性选择器

startIndex

答案 2 :(得分:0)

我收到了错误

  

错误:语法错误,无法识别的表达式:unsupported pseudo:data

因为找不到:data() Selector

使用Rails Asset Pipeline和Yarn,我需要将//= require jquery-ui/ui/data添加到application.js清单中。这样可以确保找到jquery-ui :data() Selector

对于像Webpack这样的其他构建系统,您可能需要require('jquery-ui/ui/data'),或者针对jquery-ui-distjquery-ui-bundle进行构建。 See this answer for more details