jquery的every()在Internet Explorer上不起作用

rip*_*234 3 javascript jquery internet-explorer

当我在IE中运行以下javascript时,我在"data.every(...)"上得到"错误:对象不支持此属性或方法".

它适用于Chrome/Firefox.

替代文字

gna*_*arf 14

.every()是对Array原型的JavaScript 1.6增强.Firefox在Gecko 1.8b2及更高版本中支持此方法,如果它不存在,这里是一个快速替换.

来自MDC:

every是ECMA-262标准的最新成员; 因此,它可能不会出现在所有浏览器中.您可以通过在脚本开头插入以下代码来解决此问题,从而允许使用本身不支持它的每个实现.该算法与Firefox和SpiderMonkey中使用的算法完全相同.

if (!Array.prototype.every)
{
  Array.prototype.every = function(fun /*, thisp*/)
  {
    var len = this.length >>> 0;
    if (typeof fun != "function")
      throw new TypeError();

    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in this &&
          !fun.call(thisp, this[i], i, this))
        return false;
    }

    return true;
  };
}
Run Code Online (Sandbox Code Playgroud)


Dar*_*rov 6

everyjQuery中没有定义方法.您可以使用每个:

$.each(data, function(index, task) {
    createCardFromTask(task);
});
Run Code Online (Sandbox Code Playgroud)

或者更短一些:

$.each(data, function() {
    createCardFromTask(this);
});
Run Code Online (Sandbox Code Playgroud)

  • 为了防止其他人来寻找jQuery的每一个方法 - 每个`和'每个'是非常不同的东西 - `$ .each`将返回一个jQuery对象,通常在使用`every`时你会期望一个布尔值.不确定我对这个答案被标记为正确的看法. (11认同)