我想删除类$builder->add('ip', TextType::class, array(
'label'=> 'IP Address',
'data' => '127.0.0.1'
));
的所有元素。
这在Chrome和Safari中运行良好:
sample
以下是我在Firefox中遇到的错误:
TypeError:document.querySelectorAll(...)。forEach不是函数
答案 0 :(得分:10)
document.querySelectorAll
返回一个NodeList,它像数组一样被索引,但不是一个数组,所以你不能调用它上面的数组方法。
您可以在ES6中使用Array.from(nodeList)
,在ES5中使用Array.prototype.slice.call(nodeList)
Array.from(document.querySelectorAll('selector')).forEach(el => el)
答案 1 :(得分:1)
您也可以使用polyfill(参见https://developer.mozilla.org/de/docs/Web/API/NodeList/forEach):
if (window.NodeList && !NodeList.prototype.forEach) {
NodeList.prototype.forEach = function (callback, thisArg) {
thisArg = thisArg || window;
for (var i = 0; i < this.length; i++) {
callback.call(thisArg, this[i], i, this);
}
};
}
这会将forEach方法添加到NodeList(如果缺少)。
答案 2 :(得分:0)
我刚刚在Firefox 71中使用var kmlUrl = "https://s3.amazonaws.com/geodera-bucket/filesds/5c2e82457cd9e62b0a453ce3-1578081436616-bushfireAlert.kmz";
var kml = new KMLLayer(kmlUrl);
map.addLayer(kml);
kml.on("load", function() {
domStyle.set("loading", "display", "none");
});
测试了document.querySelectorAll('.element')
,并且可以正常工作。
CanIUse显示,自版本50(2016年末)以来,FF已支持它:https://caniuse.com/#search=forEach
旧版FF的市场份额为0.25%,因此.forEach
应该可以安全使用。