我为其中一个工作平台创建了这个小交互 - http://jsfiddle.net/S79qp/426/
它在除 IE8 之外的所有浏览器中都能正常工作。当我运行控制台时,似乎是这部分有问题......
Array.prototype.forEach.call(l, function(item) {
a.push(jQuery(item).text());
});
有人可以向我展示一个 IE8 友好的替代方案,以便我可以使其与所需的版本兼容吗?
我为其中一个工作平台创建了这个小交互 - http://jsfiddle.net/S79qp/426/
它在除 IE8 之外的所有浏览器中都能正常工作。当我运行控制台时,似乎是这部分有问题......
Array.prototype.forEach.call(l, function(item) {
a.push(jQuery(item).text());
});
有人可以向我展示一个 IE8 友好的替代方案,以便我可以使其与所需的版本兼容吗?
如果你想要的只是forEach()
在 IE8 中:
if (typeof Array.prototype.forEach != 'function') {
Array.prototype.forEach = function(callback){
for (var i = 0; i < this.length; i++){
callback.apply(this, [this[i], i, this]);
}
};
}
这将在任何没有内置它的浏览器中按预期运行。
jQuery.each(l, function(index, item){
a.push(jQuery(item).text());
});
如果目标数组从一开始就为空,则可以使用以下jQuery.map
方法:
var a = jQuery.map(l, function(item){
return jQuery(item).text();
});
IE 8 不支持 forEach,您可以使用常规循环:
for ( var i = 0; i < myArray.length; i++ ) {
// code
}
实际上,forEach 方法仅适用于 IE9。您应该使用 jQuery 版本“each()”以便为旧浏览器提供支持。
我在 IE8 上遇到了同样的问题,这就是我解决它的方法!
首先想要循环并从JSON 数组对象中获取数据。看看在 Firex、chrome 和最新的 IE 中运行良好但在 IE8 中运行良好的原始版本
data.children.forEach(function(item) {
//javascript: console.log(item);
console.log(data.children);
attachRel(item, '1' + (data.children.length > 1 ? 1 : 0));
});
这是我经过一整天的奋斗后开发的解决方案
$.each(data.children, function () {
attachRel(this, '1' + (data.children.length > 1 ? 1 : 0));
});