Dojo是否有类似jQuery's :has() selector的内容?
答案 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的设计具有最大的灵活性。