我有以下一些代码来选择一些div并在它们上面添加一个click处理程序
var tiles = document.getElementsByClassName("tile");
tiles.map(function(tile, i){
tile.addEventListener("click", function(e){
console.log("click!");
});
});
Run Code Online (Sandbox Code Playgroud)
这会引发错误,因为map未定义,即使tiles是一个数组.如果我这样做一个数组,那么map工作正常:
var a = [1, 2, 3, 4];
a.map(/*whatever*/);
Run Code Online (Sandbox Code Playgroud)
解决方法是将贴图附加到贴图,如下所示:
tiles.map = Array.prototype.map;
Run Code Online (Sandbox Code Playgroud)
这很好用.我的问题是为什么没有tiles定义地图呢?它不是真正的阵列吗?