Javascript for-Schleife bis - mehrere Bedingungen
Ich bin mit javascript, mit regex zu kratzen, Bilder aus html-code.
Ich soll die Schleife ausgeführt, bis das Skript findet keine weitere Bilder oder bis 12.
Ich versuche im folgenden aber nicht funktioniert:
var imgs = d.getElementsByTagName('img'), found = [];
for(var i=0,img; ((img = imgs[i]) || ( $i < 13)); i++)
Ist das möglich? Bin ich auf dem richtigen Weg?
Ganz neue javascript-aber versucht!
Sie wurden nach unten gestimmt, weil Sie nicht beschreiben, was genau nicht funktioniert für Sie. IMO gibt es genug code hier mit sichtbaren Fehlern in der Lage sein, eine Antwort zu geben.
InformationsquelleAutor Darren Sweeney | 2012-10-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie verwenden
&&
statt||
. Auch$i
solltei
.Du bist herzlich willkommen.
InformationsquelleAutor I Hate Lazy
Angenommen, Sie möchten
found
enthalten die ersten 12:Verwenden Sie
[].slice.call(imgs, ...)
stattimgs.slice()
weilimgs
ist nur ein pseudo-array, und nicht einen real-array.Eine alternative zum schreiben
[].slice
istArray.prototype.slice
.Wenn Sie möchten, etwas anderes zu tun, innerhalb der Schleife, verwenden Sie einfach das array oben erstellt, um sicherzustellen, dass Sie arbeiten nur auf die ersten 12 Bilder:
.slice
funktioniert nicht in IE8 und niedriger, da es keine einheitlichen Objekt.Sie bedeuten, dass die Funktion nicht existiert?
Nein, ich meine IE lehnt alles andere als die aufrufenden Kontext seiner
Array.prototype
Methoden, die nicht ein natives JavaScript-Objekt. DaHTMLCollection
(oderNodeList
oder was auch immer) ist ein host-Objekt, IE mag es nicht.der verdammte IE - der springende Punkt bei der standard -
Array
Funktion Implementierungen ist, dass Sie in der Lage sein sollen aufgerufen werden, die auf array-ähnliche Objekte.Naja, zumindest sind Sie Flicken Ihre Möglichkeiten. 🙂 Aber du hast Recht, die Array-Methoden sollen generisch sein und nach ES5. Ich weiß nicht, wie es formuliert wurde, in ES3.
InformationsquelleAutor Alnitak
Ich persönlich hasse es, wenn Menschen tun, die Zuordnung in der condition-Klausel einer
for
Schleife, da sieht es aus wie jemand versehentlich eine Zuweisung (=
) für einen Vergleich (===
oder==
). Besseres zu tun hat, die Logik anderswo.oder
InformationsquelleAutor epascarello