JavaScript-Befehl / -Formel, die mir ausliest wie häufig ein Befehl in der HMTL-Datei vorkommt
mfred
- javascript
Hallo, bin nicht sicher, ob ich hier auch eine JavaScript-Frage loswerden darf. Aber da ich hier sowieso registriert bin versuche ich es einmal.
Habe eine HTML-Datei, in der ich viele Bilder anzeige. Ich möchte einfach nur wissen, wie viele es sind.
Also denke ich, dass eine Routine die aktuelle HTML-Datei durchsucht und die Anzahl Bildaufrufe ausliest - also irgendeinen String der gezählt werden soll und in eine Variable übergeben wird.
Habe einige Zeit im Web gesucht, jedoch nicht das passende gefunden.
Danke. Gruß, Manfred
PS: Bin kein Programmierer.
@@mfred
bin nicht sicher, ob ich hier auch eine JavaScript-Frage loswerden darf.
Aber sicher doch.
Habe eine HTML-Datei, in der ich viele Bilder anzeige. Ich möchte einfach nur wissen, wie viele es sind.
Also denke ich, dass eine Routine die aktuelle HTML-Datei durchsucht
Musst du gar nicht. Es gibt bereits document.images
…
und die Anzahl Bildaufrufe ausließt - also irgendeinen String der gezählt werden soll und in eine Variable übergeben wird.
… und du willst wissen, wieviele Elemente da drin sind: document.images.length
PS: Bin kein Programmierer.
Und HTML ist keine Programmiersprache; es gibt darin keine „Befehle“.
LLAP 🖖
Hallo Gunnar,
Es gibt bereits document.images …
Ups. Echt? Na gut. Das ist einfacher.
Rolf
Hallo,
Musst du gar nicht. Es gibt bereits
document.images
…
und wenn es eine einmalige Sache ist, im FF Strg u
(Quelltext) Strg f
(suchen) und dann in das Suchfeld <img
eingeben.
Gruß
Jürgen
Hey, das ist genial. Habe diese Zeile Code bei mir eingefügt.
var qty_total = (document.images.length -1)/ 2;
Die bringt mir in meinem Fall genau die richtige Anzahl. Jetzt zu sehen in diesem Beispiel. http://www.mypins.de/ibm/pin_cat/cat_spo_wi.htm
Werde ich nach und nach in meinen vielen anderen Dateien einfügen. www.mypins.de/ibm
Vielen Dank. Hat perfekt geklappt.
LG, Manfred
Hallo Manfred
Du musst unterscheiden zwischen der HTML Datei und dem DOM. Die HTML Datei ist das, was der Browser vom Server bekommt, und das DOM (Document Object Model) ist das, was der Browser draus macht.
JavaScript hat zunächst einmal nur auf das DOM Zugriff. Willst Du explizit die HTML Datei haben, müsstest Du sie nochmal mittels eines XmlHttpRequest (Stichwort: AJAX) vom Server nachladen. Aber wahrscheinlich reicht Dir das DOM.
Das DOM kannst Du auf zwei Arten durchsuchen: als Text, oder als Objektbaum. Den Text zu durchsuchen ist wenig sinnvoll, aber möglich. Du musst nur auf die innerHTML Eigenschaft des body-Elements zugreifen, und hast dann eine lange Zeichenkette, wo eine textuelle Repräsentation des DOM drinsteht.
Besser ist der Objektbaum. Dann kannst Du nämlich die Methoden der darin vorhandenen Objekte benutzen und bist sofort fertig:
document.querySelectorAll("img").length;
querySelectorAll ermittelt alle Elemente, die auf den übergebenen Selektor zutreffen (im Sinne von CSS Selektor) und liefert eine NodeList. Die hat eine gewisse Länge, entsprechend der Anzahl der gefundenen Elemente, und die bekommst Du mit der length Eigenschaft. Der Selektor ist hier img
, also alle img Elemente im Dokument.
PS: Bin kein Programmierer.
Brauchst Du dafür auch nicht zu sein. Öffne die Seite, öffne die Entwicklerwerkzeuge des Browsers (meistens die F12 Taste), gehe auf die Seite "Konsole" (oder "Console") und gib dort das ein, was da oben steht.
In der Konsole sollte dann die Antwort landen. Wenn nicht: verwende console.log:
console.log(document.querySelectorAll("img").length);
Bitte auf die richtige Klammerverteilung und auf Groß-/Kleinschrift achten!
Wenn Du nur die Bilder in einem Teilbereich deiner HTML Seite zählen willst, musst Du einen CSS Selektor formulieren, der das entsprechend eingrenzt.
Rolf
Danke Rolf für deinen ausführlichen Hinweis. Es sieht so aus, als ob in meinem Fall der Vorschlag von Gunnar ausreicht.
document.images.length
Siehe meinen anderen Kommentar.
LG, Manfred