javascript - Data.filter 在 IE 8 中不起作用?

标签 javascript jquery html internet-explorer

 countImage = data.filter(function(value) { return value !== undefined }).length;

此语句返回错误对象不支持此属性或方法,如何解决该问题?谢谢

更新,数据是从ajax获取的,是一个使用json编码的数组

$imgArray[] = $dir.DIRECTORY_SEPARATOR.$file.DIRECTORY_SEPARATOR.'Pv'.$filePadded.'.png';
die(json_encode($imgArray));

data: {'data':issueString}, 
                success: function (data) {
                    countImage = data.filter(function(value) { return value !== undefined }).length;


..........

最佳答案

你得到的是一个javascript数组而不是一个jquery对象,所以你正在调用Array.prototype.filter方法。

如果您看到 IE 的兼容性,则表明 IE9+ 支持它。

在该页面中还有一种方法可用于不支持Array.prototype.filter的浏览器

if (!Array.prototype.filter)
{
  Array.prototype.filter = function(fun /*, thisp */)
  {
    "use strict";

    if (this == null)
      throw new TypeError();

    var t = Object(this);
    var len = t.length >>> 0;
    if (typeof fun != "function")
      throw new TypeError();

    var res = [];
    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in t)
      {
        var val = t[i]; // in case fun mutates this
        if (fun.call(thisp, val, i, t))
          res.push(val);
      }
    }

    return res;
  };
}

关于javascript - Data.filter 在 IE 8 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14453259/

相关文章:

javascript - 垂直标签不起作用

html - 如何取消选中 Angular 7 中单击按钮时的复选框

javascript - 如何集成 CORS、Google 博客和 JavaScript?

Jquery:如何突破each()及其内部的函数?

html - Excel 导出到重叠的 HTML 单元格

html - 如何根据内容设置宽度?

javascript - asp.net-mvc ajax json post 到 Controller 操作方法

javascript - 如何突出图像的一部分并模糊其余部分?

javascript - 我无法在 webpack 中使用 Babel 的其余操作符

javascript - 使用 JavaScript 从 JSON 值加载 HTML 表