Quand je lance le javascript suivant dans IE, je reçois « Erreur: objet ne prend pas en charge cette propriété ou méthode » sur « data.every (...) ».de tous les jquery() ne fonctionne pas sur Internet Explorer
Fonctionne dans Chrome/Firefox.
Quand je lance le javascript suivant dans IE, je reçois « Erreur: objet ne prend pas en charge cette propriété ou méthode » sur « data.every (...) ».de tous les jquery() ne fonctionne pas sur Internet Explorer
Fonctionne dans Chrome/Firefox.
Il n'y a pas méthode every
définie dans jQuery. Vous pouvez utiliser each à la place:
$.each(data, function(index, task) {
createCardFromTask(task);
});
ou un peu plus court:
$.each(data, function() {
createCardFromTask(this);
});
.every()
est une amélioration JavaScript 1.6 au prototype Array. Firefox prend en charge cette méthode dans Gecko 1.8b2 et ultérieur, et voici un remplacement rapide s'il n'existe pas.
De MDC:
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;
};
}
Pourquoi le 'this.length >>> 0'? Est-ce que cela fait autre chose que de retourner cette longueur? – Krab
Cela a été copié à partir de l'article MDC ... 'this.length >>> 0' est un bitshift unsigned, la seule raison que je pourrais penser à ajouter c'est de s'assurer que' length' est un nombre non signé * shrug * – gnarf
J'ai eu récemment le même problème avec .each fonction lorsque j'ai essayé de boucle à travers la sélection d'éléments DOM. Il s'avère que le problème n'était pas avec Javascript. C'était le HTML, un tag spécial que nous utilisions. ABBR, n'est pas supporté par IE6.
Je vous suggère d'abord vérifier toutes vos étiquettes, assurez-vous que toutes les étiquettes sont supportées par IE6.
+1 - '$ .each()' est certainement le chemin à parcourir pour cette simple fonction de rappel ... – gnarf
Juste au cas où d'autres personnes viendraient chercher une méthode jQuery - 'each' et' every' sont des choses très différentes - '. $' retournera un objet jQuery, où normalement en utilisant 'every' vous attendez un booléen. Je ne sais pas comment je pense que cette réponse soit correcte. – Jesse