Dojo 有类似jQuery 的 :has() 选择器吗?
问问题
212 次
1 回答
2
Dojo,不直接支持这个。它原生支持两种不同的选择器引擎:acme 和 lite(参见dojo/query的文档)。Lite 旨在快速高效,但缺少一些高级(但很少使用的功能)。Acme 是一个功能齐全的 CSS3 选择器。
您还可以将 3rd-party 引擎作为插件加载;包括jQuery 使用的Sizzle 引擎。通过使用 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(替代选择器)和Sizzle 引擎)。
除非这是必备功能,否则最好使用本机选择器。然而,Dojo 的设计具有最大的灵活性。
于 2012-11-19T08:00:26.637 回答