我原本是要求一個優雅的方式來模擬getElementsByTagName
函數在IE或老版本瀏覽器中的結果Array.concat()
的功能,因爲它好像不支持concat
。當然,這只是 - 返回的對象不支持它的原因是因爲它不是Array
。哎呀!Javascript - 將多個NodeLists連接在一起
getElementsByTagName
實際上返回NodeList
。那麼真正的問題是:什麼是獲取文檔中所有表單元素(input,select,textarea,button)的單個列表的好方法來遍歷它們?一個數組不是必需的...單個NodeList
也是完美的。
請注意,我正在使用IE6,因爲這是企業內部網(儘管IE8很快)。
,我想出的答案是:
它變得更簡單,可能表現較好,只是把代碼放到一個單獨的函數,並把它稱爲三次不同的NodeLists,而不是擔心將它們合併爲一個好方法。
我最終切換到使用MooTools的(讀了幾個小時的所有不同的框架的比較之後)。所以現在,獲得我想要的物品數組非常簡單。我建議使用這樣的JavaScript框架,而不是讓人們絞盡腦汁想出最好的方法來做事。當然,我真的都是在學習原始語言(這就是爲什麼我長時間使用框架的原因),但它並不總是最快的方式去實現事情,在一個企業中,這往往同樣重要作爲提高編碼員的語言能力。
更新:差不多2年後,我只會使用jQuery並完成它!
IE支持這個,你能澄清一下這個問題嗎? – 2010-03-12 02:32:22
使用jQuery絕對是最好的選擇。但是,在我沒有訪問jQuery的情況下,我遇到了這個問題。我最終創建了一個我想要執行的元素標記數組,並循環它,爲每個元素調用getElementsByTagName。我想知道這或多或少比頂級答案有效。 – bpscott 2013-03-28 17:56:06
@bpscott但是你是否已經把所有的元素都放到了一個單一的數組中,或者一次只處理一個標籤的值? – ErikE 2013-03-28 17:58:15