繁体   English   中英

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

[英]jquery's every() doesn't work on Internet Explorer

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

它适用于Chrome / Firefox。

替代文字

.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;
  };
}

jQuery中没有定义every方法。 您可以使用每个

$.each(data, function(index, task) {
    createCardFromTask(task);
});

或者更短一些:

$.each(data, function() {
    createCardFromTask(this);
});

当我尝试循环选择DOM元素时,我最近遇到了与.each函数相同的问题。 事实证明问题不在于Javascript。 这是HTML,我们正在使用的特殊标签。 IE6不支持ABBR。

我建议你先检查所有标签,确保IE6支持所有标签。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM