mfred: JavaScript-Befehl / -Formel, die mir ausliest wie häufig ein Befehl in der HMTL-Datei vorkommt

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.

  1. @@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 🖖

    --
    „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
    „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

    —Marc-Uwe Kling
    1. Hallo Gunnar,

      Es gibt bereits document.images …

      Ups. Echt? Na gut. Das ist einfacher.

      Rolf

      --
      sumpsi - posui - clusi
    2. 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

    3. 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

  2. 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

    --
    sumpsi - posui - clusi
    1. 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