小编zei*_*oon的帖子

`document.getElementsByClassName`的结果没有定义像`map`这样的数组方法,即使它是一个数组

我有以下一些代码来选择一些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定义地图呢?它不是真正的阵列吗?

javascript arrays map

7
推荐指数
1
解决办法
4981
查看次数

标签 统计

arrays ×1

javascript ×1

map ×1