2015-02-12 38 views
0

在道場文檔有一個例子:理解道場封閉示例

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)是與「榆樹」是對元件的縮寫的封閉,並且在這種情況下,2個封閉件創建,第一次關閉的elm = h2,第二次關閉的elm = h3。它是否正確?

回答

1

像CSS一樣,dojo/query支持分組選擇器。 h2,h3將匹配所有h2h3元素,並且headings將是dojo/NodeList,其中所有h2h3元素都在文檔中找到。 array.forEach只是按順序遍歷整個NodeList,所以每次通過函數elm引用下一個h2h3元素。

+0

好的,在DOM中可以有很多h2,h3s。但是不是h2,h3兩個選擇器不是一個嗎? – bhartsb 2015-02-12 22:28:42

+0

是的,從技術上講它們被認爲是分組選擇器,所以也許我沒有在那裏選擇最好的單詞。 – 2015-02-13 00:45:10