我經常想用forEach或map遍歷NodeList。我的簡化代碼是這樣的:如何迭代nodeList功能樣式
var nodeListMap = Array.prototype.map;
var els = document.querySelectorAll('.classname');
nodeListMap.call(els, function(el){...});
這工作正常。但是,我寧願沒有map.call
,但如果我這樣做...
var nodeListMap = Array.prototype.map.call;
var els = document.querySelectorAll('.classname');
nodeListMap(els, function(el){...});
然後返回
TypeError: object is not a function
我如何修改代碼,所以我根本就nodeListMap(array, fn)
?
你可能想'Array'而不是'[]' – Shmiddty 2013-02-08 19:46:06
我確實有'[] .prototype.map'這當然是錯誤的,應該是'Array.prototype.map',但'[] .map'對自己的作品也是如此。 – Alnitak 2013-02-08 19:46:30
@Bergi我正在修復,因爲你鍵入。 Shmiddty的答案有(有)同樣的問題。 – Alnitak 2013-02-08 19:51:44