Dojo有没有像jQuery的那样:has()选择器?

时间:2012-11-19 04:44:40

标签: javascript jquery jquery-selectors dojo

Dojo是否有类似jQuery's :has() selector的内容?

1 个答案:

答案 0 :(得分:2)

Dojo,不直接支持此功能。它支持两种不同的选择器引擎:acme& amp; lite(参见dojo/query的文档)。 Lite旨在快速有效,但缺少一些先进的(但很少使用的功能)。 Acme是一个功能齐全的CSS3选择器。

您还可以将第三方引擎加载为插件;包括jQuery使用的Sizzle engine。通过使用Sizzle,您可以在查询中访问:has()选择器。

这可以在主要的Dojo配置中实现,也可以作为插件即时完成:

var dojoConfig = {
    /*
        This change the selector engine globally within Dojo.  Be careful
        that this does not adversely affect any loaded modules, which
        use dojo/query
    */

    "selectorEngine": "sizzle/sizzle"
};

或:

require([
    "dojo/query!sizzle/sizzle"
], function($){
    var divs = $("div:has(p)");
});

由于Sizzle不是Dojo核心的一部分,因此您需要将其下载并安装到dojo,dojox,dijit旁边的sizzle目录中,以实现此目的。 (另请参阅:dojo/query (alternative selectors)& Sizzle engine)。

除非这是必备功能,否则最好使用原生选择器。但是,Dojo的设计具有最大的灵活性。