在Dojo文档中有一个例子:
require([
"dojo/query",
"dojo/_base/array",
"dojo/dom-construct",
"dojo/domReady!"
], function(query, array, domConst){
function topLinks(){
var headings = query('h2,h3');
array.forEach(headings, function(elm){
var topLink = domConst.create("a", {
href: "#top",
innerHTML: "^top"
});
domConst.place(topLink, elm, "before");
});
}
});
我假设函数(elm)是一个闭包,'elm'是元素的缩写,在这种情况下创建了2个闭包,第一个闭包用elm = h2,第二个闭包用elm = h3。这是对的吗?
答案 0 :(得分:1)
与CSS一样,dojo/query
支持分组选择器。 h2,h3
将匹配所有h2
和h3
元素,headings
将dojo/NodeList
,其中包含所有h2
和h3
个元素在文件中。 array.forEach
只是按顺序遍历整个NodeList
,因此每次通过函数elm
都会引用下一个h2
或h3
元素。