Kann mir jemand eine IE8-freundliche Alternative zeigen, damit ich sie für die erforderlichen Versionen kompatibel machen kann?
Warum verwenden Sie nicht jQuery anstelle von Prototypen?
– Der Mechaniker
24. April 2013 um 8:25 Uhr
@Sarfaraz: Die prototype in diesem Fall nicht die Bibliothek, sondern das Schlüsselwort in Javascript.
– Gufa
24. April 2013 um 8:41 Uhr
@Sarfaraz Was ist auch falsch an der Verwendung von Prototypen?
– Rickyduck
24. April 2013 um 9:09 Uhr
@nickyduck bin eigentlich ein bisschen mit Prototyp verwechselt und versuche, Prototyp zu verstehen
– Der Mechaniker
24. April 2013 um 9:59 Uhr
@Gufaa verstehe nicht, was du sagst
– Der Mechaniker
24. April 2013 um 10:00 Uhr
Wenn alles, was Sie wollen, ist forEach() im 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]);
}
};
}
Dies wird sich verhalten wie erwartet in jedem Browser, der es nicht eingebaut hat.
Up hat dafür gestimmt, dass es bei einem großen Projekt manchmal einfacher und sicherer ist, bei der Korrektur des fehlerhaften Browsers zu helfen, anstatt zu versuchen, Code zu korrigieren, der nicht wirklich fehlerhaft ist
– Wütend 84
17. März 2015 um 4:00 Uhr
Es wäre besser, Polyfill unter dem angegebenen Link zu verwenden. Dieser Code wurde perfektioniert.
– Maxwell175
12. April 2016 um 15:39 Uhr
Ich fand Ihre Antwort nützlich, aber sie konnte bei mir nicht funktionieren (IE11, Windows 10). Es besagt, dass das “Objekt” (ein einfaches Array) die nicht verarbeitet forEach Methode. Ich habe es versucht console.log das typeof der Funktion und der function selbst und es ist als eine Funktion mit definiert [native code].
Wenn das Zielarray von Anfang an leer ist, können Sie die verwenden jQuery.map Methode dafür stattdessen:
var a = jQuery.map(l, function(item){
return jQuery(item).text();
});
Jetzt sagt die Konsole, dass sie index = a.indexOf(current) + 1 nicht unterstützt; if (index < 0 || index >= l.länge) { index = 0; @Guffa }
– Milo-J
24. April 2013 um 8:29 Uhr
@Milo-J: Array.indexOf ist eine weitere Methode, die kürzlich hinzugefügt wurde. Verwenden Sie die jQuery.inArray Methode statt. api.jquery.com/jQuery.inArray
– Gufa
24. April 2013 um 8:40 Uhr
Ich habe es versucht, aber es wird nicht funktionieren. könntest du bitte nachsehen? jsfiddle.net/S79qp/428 @Guffa
– Milo-J
24. April 2013 um 9:06 Uhr
@Milo-J: Wenn Sie den Text aus dem Element mit der text -Methode erhalten Sie nicht dasselbe zurück wie das, was Sie mit der eingegeben haben html -Methode, sodass Ihr Code den Text im Array niemals finden wird.
– Gufa
24. April 2013 um 9:54 Uhr
das l ist sehr verwirrend.
– deddu
15. September 2014 um 16:35 Uhr
forEach wird in IE 8 nicht unterstützt, stattdessen können Sie eine reguläre Schleife verwenden:
for ( var i = 0; i < myArray.length; i++ ) {
// code
}
Laurent S.
Tatsächlich ist die forEach-Methode nur ab IE9 verfügbar. Sie sollten die jQuery-Version „each()“ verwenden, um ältere Browser zu unterstützen.
Ich hatte das gleiche Problem mit IE8 und hier ist, wie ich es gelöst habe!
Zuerst wollte ich eine Schleife machen und Daten von bekommen JSON-Array Objekt. Schauen Sie sich das Original an, das in Firex, Chrome und dem neuesten IE gut funktioniert, aber nicht in IE8
Warum verwenden Sie nicht jQuery anstelle von Prototypen?
– Der Mechaniker
24. April 2013 um 8:25 Uhr
@Sarfaraz: Die
prototype
in diesem Fall nicht die Bibliothek, sondern das Schlüsselwort in Javascript.– Gufa
24. April 2013 um 8:41 Uhr
@Sarfaraz Was ist auch falsch an der Verwendung von Prototypen?
– Rickyduck
24. April 2013 um 9:09 Uhr
@nickyduck bin eigentlich ein bisschen mit Prototyp verwechselt und versuche, Prototyp zu verstehen
– Der Mechaniker
24. April 2013 um 9:59 Uhr
@Gufaa verstehe nicht, was du sagst
– Der Mechaniker
24. April 2013 um 10:00 Uhr