我最近需要从HTML文档中提取多个节点的值。我使用querySelectorAll获取节点,querySelectorAll返回符合条件的节点列表。之前我曾经使用过arr.map,所以我尝试这样做(这不起作用):
var elems = document.querySelectorAll('select option:checked');
values = elems.map(function(obj) {return obj.value});
当我阅读MDN中的文档时,我发现我必须使用类似的东西:
var elems = document.querySelectorAll('select option:checked');
var values = Array.prototype.map.call(elems, function(obj) {
return obj.value;
});
我的问题是,如果我从querySelectorAll得到的是一个数组,为什么我不能使用第一个表达式,就像我对任何其他数组一样?