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/