当我在IE中运行以下javascript时,我在“data.every(...)”上得到“错误:对象不支持此属性或方法”。
适用于Chrome / Firefox。
答案 0 :(得分: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;
};
}
答案 1 :(得分:6)
jQuery中没有定义every
方法。您可以改为使用each:
$.each(data, function(index, task) {
createCardFromTask(task);
});
或更短一些:
$.each(data, function() {
createCardFromTask(this);
});
答案 2 :(得分:0)
当我尝试循环选择DOM元素时,我最近遇到了与.each函数相同的问题。事实证明问题不在于Javascript。这是HTML,我们正在使用的特殊标签。 IE6不支持ABBR。
我建议您先检查所有标签,确保IE6支持所有标签。