guest00534&45x$5x: Schleife... alle Objekte mit class="X"

Also mein Problem:
Ich möchte mit javascript eine schleife erstellen die alle Objekte die der Klasse X (class="X") nimmt und etwas bestimmtes macht.

Hat jemand ne Idee???

Meine Idee / Ansatz
for (var i=0;getElementsByTagName("div").lenght <= i; i++) {
 if (getElementsByTagName("div")[i].class == "X")
  getElementsByTagName("div")[i].class == "Y";
}

Aber das geht irgendwie nicht. Ich glaube das .lenght schon nicht bei getElement geht. Hat jemand ne bessere Idee????

Danke schon mal.

  1. Hallo,

    for (var i=0;getElementsByTagName("div").lenght <= i; i++) {
    if (getElementsByTagName("div")[i].class == "X")
      getElementsByTagName("div")[i].class == "Y";
    }

    die Objekteigenschaft heißt in Javascript className. Das Schlüsselwort class ist reserviert, womöglich für zukünftige OOP-Erweiterungen in JS.

    So long,
     Martin

    --
    Lieber Blödeleien als blöde Laien.
    1. Danke Leute!!!

  2. Hallo Egon,

    probier mal className statt class ;-)

    Bei mir klappte es hervorragend.

    Berdn

  3. Hallo guest00534&45x$5x,

    for (var i=0;getElementsByTagName("div").lenght <= i; i++) {

    lenght heisst eigentlich length und eigentlich soll die Schliefe solange laufen wie i kleiner der Length von getElementsByTagName("div") ist. getElementsByTagName("div") solltest du in eine Variable packen, damit es nicht jedesmal ausgefuehrt wird.
    Hier wuerde es also richtig heissen
    var alleDivs = getElementsByTagName("div");
    for(var i = 0; i < alleDivs.length; i++)

    if (getElementsByTagName("div")[i].class == "X")

    Das was in CSS class heisst, ist in JS className, es muesste demnach heissen
    if(alleDivs[i].className == 'x')

    getElementsByTagName("div")[i].class == "Y";

    und hier waere richtig
    alleDivs[i].className = 'y'

    Gruß,

    Dieter

    1. Habs eigentlich genauso gemacht hat nur noch angepasst. Geht aber trotzdem nicht. Hier ist mein angepasster Quelltext:

      var allImg = document.getElementsByTagName("img");
       for (var i=0;allImg.length <= i; i++) {
        if (allImg[i].className == "offline") {
         allImg[i].style.backgroundImage = "url("+allImg[i].src+")";
         allImg[i].src = "../static/offline.png";
        }
       }

      Nochmal Danke Egon.

      1. Habs eigentlich genauso gemacht hat nur noch angepasst. Geht aber trotzdem nicht. Hier ist mein angepasster Quelltext:

        Hast du nicht. Und was heißt "geht nicht"?

        var allImg = document.getElementsByTagName("img");

        wenn es dir nur um die Bilder geht, kannst du auch document.images verwenden.

        for (var i=0;allImg.length <= i; i++) {

        <= ist nicht richtig, damit läßt du ein Bild aus, da length bei null anfängt zu zählen.

        Struppi.

        1. Hallo Struppi,

          for (var i=0;allImg.length <= i; i++) {
          <= ist nicht richtig, damit läßt du ein Bild aus, da length bei null anfängt zu zählen.

          Viel schlimmer noch: Der Vergleich ist verkehrtrum! Üblicherweise formuliert man doch i<Endwert, es ist recht ungewöhnlich, den Endwert im Vergleich vorne dranzustellen. Möglich ist das natürlich auch, aber dann muss man auch den Vergleichsoperator umdrehen:

          for (i=0; 10>i; i++)
            { document.write("Durchlauf Nummer "+i);
            }

          Das ergibt auch zehn Durchläufe, i zählt von 0..9 durch und hat nach Schleifenende den Wert 10.
          Schönen Tag noch,
           Martin

          --
          Man sollte immer wissen was man sagt
           - aber auf keinen Fall alles sagen, was man weiß.
          1. Jetzt gehtz!

            Danke.

            Danke an alle! as Forum is echt spitze! Niveauvoll und hilfreich.

      2. Hallo guest00534&45x$5x.

        var allImg = document.getElementsByTagName("img");

        Mache es dir nicht so kompliziert. Es gibt bereits eine vorgefertigte Kollektion für alle Grafiken in einem Dokument: http://de.selfhtml.org/javascript/objekte/images.htm#allgemeines@title=document.images.

        Einen schönen Sonntag noch.

        Gruß, Ashura

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        mathbr:del.icio.us/ mathbr:w00t/