Когда я запускаю следующий javascript в IE, я получаю «Ошибка: объект не поддерживает это свойство или метод» в «data.every (...)».jquery's every() не работает в Internet Explorer
Работает в Chrome/Firefox.
Когда я запускаю следующий javascript в IE, я получаю «Ошибка: объект не поддерживает это свойство или метод» в «data.every (...)».jquery's every() не работает в Internet Explorer
Работает в Chrome/Firefox.
Там нет every
метода, определенного в JQuery. Вы можете использовать вместо each:
$.each(data, function(index, task) {
createCardFromTask(task);
});
или немного короче:
$.each(data, function() {
createCardFromTask(this);
});
.every()
является JavaScript 1.6 повышение к массиву прототипа. Firefox поддерживает этот метод в Gecko 1.8b2 и более поздних версиях, а вот быстрая замена, если она не существует.
От МДХ:
every
is a recent addition to the ECMA-262 standard; as such it may not be present in all browsers. You can work around this by inserting the following code at the beginning of your scripts, allowing use of every in implementations which do not natively support it. This algorithm is exactly the one used in Firefox and 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;
};
}
Почему 'this.length >>> 0'? Делает ли это что-то другое, кроме возврата this.length? – Krab
Это было скопировано из статьи MDC ... 'this.length >>> 0' - это неподписанный бит-брейк, единственная причина, по которой я мог бы подумать, что это означает, что' length' является неподписанным числом * shrug * – gnarf
Я недавно была та же проблема с .each функции, когда я попытался цикла посредством выбора элементов DOM. Оказывается, проблема не в Javascript. Это был HTML, специальный тег, который мы использовали. ABBR, не поддерживается IE6.
Предлагаю сначала проверить все ваши теги, убедиться, что все теги поддерживаются IE6.
+1 - '$ .each()' определенно способ пойти на эту простую функцию обратного вызова ... – gnarf
На всякий случай другие люди ищут jQuery каждый метод - 'each' и' every' очень разные вещи. '$ .each' вернет объект jQuery, где обычно при использовании' each' вы ожидаете логического. Не уверен, как я отношусь к тому, что этот ответ правильно обозначен. – Jesse