为什么我的 Javascript 在 IE8 中会中断?
Why does my Javascript break in IE8?
以下代码在 IE8 中无效:
getTypes: function (filter) {
features = []
_.each(this.collection.models, function (item) {
_.each(item.get(filter), function (value) {
if(features.indexOf(value) == -1){ //// error happens here
features.push(value)
}
})
})
return features
}
我收到错误消息:
消息:对象不支持此 属性 或方法
这是为什么?
Array.prototype.indexOf
在 IE 9 之前不支持。(source).
您需要对其进行猴子修补(上面链接的 MDN 页面上有一个示例)或使用替代方法。
IE9之前的IE版本不支持.indexOf() function for Array
作为替代方法,您可以使用 jQuery.inArray()。像这样:
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(val) {
return jQuery.inArray(val, this);
};
}
以下代码在 IE8 中无效:
getTypes: function (filter) {
features = []
_.each(this.collection.models, function (item) {
_.each(item.get(filter), function (value) {
if(features.indexOf(value) == -1){ //// error happens here
features.push(value)
}
})
})
return features
}
我收到错误消息: 消息:对象不支持此 属性 或方法
这是为什么?
Array.prototype.indexOf
在 IE 9 之前不支持。(source).
您需要对其进行猴子修补(上面链接的 MDN 页面上有一个示例)或使用替代方法。
IE9之前的IE版本不支持.indexOf() function for Array
作为替代方法,您可以使用 jQuery.inArray()。像这样:
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(val) {
return jQuery.inArray(val, this);
};
}