J'ai créé cette petite interaction pour l'une des plateformes au travail - http://jsfiddle.net/S79qp/426/
Cela fonctionne très bien dans tous les navigateurs sauf IE8. Lorsque j'exécute la console, il semble que cette section pose des problèmes ...
Array.prototype.forEach.call(l, function(item) {
a.Push(jQuery(item).text());
});
Est-ce que quelqu'un peut me montrer une alternative conviviale IE8 pour que je puisse le rendre compatible avec les versions requises?
Utilisez la méthode jQuery.each
:
jQuery.each(l, function(index, item){
a.Push(jQuery(item).text());
});
Si le tableau cible est vide depuis le début, vous pouvez utiliser la méthode jQuery.map
pour cela à la place:
var a = jQuery.map(l, function(item){
return jQuery(item).text();
});
Si tout ce que vous voulez est forEach()
dans IE8:
if (typeof Array.prototype.forEach != 'function') {
Array.prototype.forEach = function(callback){
for (var i = 0; i < this.length; i++){
callback.apply(this, [this[i], i, this]);
}
};
}
Cela se comportera comme prévu dans tout navigateur qui ne l’a pas intégré.
forEach n'est pas supporté dans IE 8, vous pouvez utiliser une boucle régulière:
for ( var i = 0; i < myArray.length; i++ ) {
// code
}
En effet, la méthode forEach est uniquement disponible à partir de IE9. Vous devez utiliser la version jQuery "each ()" afin de prendre en charge les navigateurs plus anciens.
J'ai eu le même problème avec IE8 et voici comment je l'ai résolu!
Tout d’abord, je voulais faire une boucle et obtenir des données à partir de tableau JSON objet . Regardez l’original qui fonctionne bien dans Firex, Chrome et le dernier IE mais pas IE8
data.children.forEach(function(item) {
//javascript: console.log(item);
console.log(data.children);
attachRel(item, '1' + (data.children.length > 1 ? 1 : 0));
});
Voici la solution que j'ai développée après une longue journée de lutte
$.each(data.children, function () {
attachRel(this, '1' + (data.children.length > 1 ? 1 : 0));
});