Philipp84: Eine bestimmte Anzahl an Divs ansprechen

Hallo,
ich möchte gerne per Javascript eine bestimmte Anzahl an Divs mit Javascript ansprechen (nicht alle). Ein Beispiel hierfür wäre, diesen Divs einen gemeinsames Name geben und dann getElementsbyName zu verwenden. Nur lässt ein Div leider kein Name zu, da das Attribut Name kein Universalattribut ist. Wie kann ich dieses trotzdem umsetzen?

Bereits jetzt vielen Dank für eure Hilfe,

Philipp

  1. Hallo Philipp84,

    Hallo,
    ich möchte gerne per Javascript eine bestimmte Anzahl an Divs mit Javascript ansprechen (nicht alle). Ein Beispiel hierfür wäre, diesen Divs einen gemeinsames Name geben und dann getElementsbyName zu verwenden. Nur lässt ein Div leider kein Name zu, da das Attribut Name kein Universalattribut ist. Wie kann ich dieses trotzdem umsetzen?

    Könntest du vielleicht alle anzusprechenden DIV-Elemente (wenn sie im Quellecode beieinander liegen) ihrerseits in ein DIV schachteln? Dann könntests su sie über

    document.getElementById('deinSchachtelDiv').getElementsByTagName('DIV')

    ansprechen.

    Gruß Gernot

    1. Hallo Gernot,

      leider nicht, da zwischen diesen Divs noch weitere Divs liegen. Daran hatte ich auch schon gedacht, geht aber leider in diesem Fall nicht.

      Gruß, Philipp

      Könntest du vielleicht alle anzusprechenden DIV-Elemente (wenn sie im Quellecode beieinander liegen) ihrerseits in ein DIV schachteln? Dann könntests su sie überdocument.getElementById('deinSchachtelDiv').getElementsByTagName('DIV')

  2. Hi,

    ich möchte gerne per Javascript eine bestimmte Anzahl an Divs mit Javascript ansprechen (nicht alle). Ein Beispiel hierfür wäre, diesen Divs einen gemeinsames Name geben und dann getElementsbyName zu verwenden. Nur lässt ein Div leider kein Name zu, da das Attribut Name kein Universalattribut ist. Wie kann ich dieses trotzdem umsetzen?

    Haben die DIVs, die Du ansprechen willst irgendwas gemeinsam?

    Wenn sie beispielsweise alle in der gleichen Klasse sind könntest du mit einer Schleife und getElementsByTagName erstmal alle DIVs der reihe nach durchgehen und dann überprüfen welchen className sie haben.

    mfG,
    steckl

    1. Haben die DIVs, die Du ansprechen willst irgendwas gemeinsam?

      Leider nein, außer dass ich genau diese Divs ansprechen will, nicht. Denn die anderen Divs haben teilweise die gleiche Class, es wäre meiner Meinung nach aber nicht sinvoll, diese Class zu duplizieren, um damit dieses Problem zu lösen (wäre ein Notnagel, hoffe aber noch, dass ich ne andere Lösung finde)

      1. Hi,

        Haben die DIVs, die Du ansprechen willst irgendwas gemeinsam?

        Leider nein, außer dass ich genau diese Divs ansprechen will, nicht. Denn die anderen Divs haben teilweise die gleiche Class, es wäre meiner Meinung nach aber nicht sinvoll, diese Class zu duplizieren, um damit dieses Problem zu lösen (wäre ein Notnagel, hoffe aber noch, dass ich ne andere Lösung finde)

        Wäre es eine möglichkeit den DIVs alle eine ID zu geben, die du vorher schon kennst, oder die immer gleich anfängt?
        Beispielsweise zuAendern1, zuAendern2, zuAendern3, ...
        Dann könntest du alle DIVs durchlaufen und überprüfen, ob die ID mit "zuAendern" anfängt.

        mfG,
        steckl

        1. Wäre es eine möglichkeit den DIVs alle eine ID zu geben, die du vorher schon kennst, oder die immer gleich anfängt?
          Beispielsweise zuAendern1, zuAendern2, zuAendern3, ...
          Dann könntest du alle DIVs durchlaufen und überprüfen, ob die ID mit "zuAendern" anfängt.

          Das wäre möglich. Muss ich aber dann nicht wissen, wieviele Divs davon betroffen sind? Oder wie kann ich sonst genau die Divs per ID adressieren, die es auch gibt, da diese automatisch generiert werden. Gibt es evenzuell ein Element, dass das Attribut Name zu
          lässt und um die Divs gelegt werden könnte, um dadurch die Divs zu adressieren?

          1. Hi,

            Wäre es eine möglichkeit den DIVs alle eine ID zu geben, die du vorher schon kennst, oder die immer gleich anfängt?
            Beispielsweise zuAendern1, zuAendern2, zuAendern3, ...
            Dann könntest du alle DIVs durchlaufen und überprüfen, ob die ID mit "zuAendern" anfängt.

            Das wäre möglich. Muss ich aber dann nicht wissen, wieviele Divs davon betroffen sind? Oder wie kann ich sonst genau die Divs per ID adressieren, die es auch gibt, da diese automatisch generiert werden.

            Bei der Erzeugung der relevanten DIVs musst du diesen eine bestimmte ID zuweisen.
            Dein Javascript läuft dann alle DIVs durch und überprüft ob ihre ID beispielsweise mit "zuAendern" beginnt. Wenn das der Fall ist kannst du diese DIVs ändern, ansonsten machst du mit der Überprüfung des nächsten DIVs weiter, bis du alle DIVs durchgegangen bist.

            mfG,
            steckl

            1. Moin

              Dein Javascript läuft dann alle DIVs durch und überprüft ob ihre ID beispielsweise mit "zuAendern" beginnt. Wenn das der Fall ist kannst du diese DIVs ändern, ansonsten machst du mit der Überprüfung des nächsten DIVs weiter, bis du alle DIVs durchgegangen bist.

              ich glaube um solche Gemeinsamkeiten darzustellen wäre eine Klasse weitaus geeigneter als eine ID, die ja nun gerade Alleinstellungsmerkmale hervorheben soll.
              Wie schon erwähnt: die Zuteilung 2er Klassennamen ist kein Problem:
              <div class="klasse1 klasse2">

              Gruß
              rfb

              --
              Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
              (Galileo Galilei)
              1. Hi,

                ich glaube um solche Gemeinsamkeiten darzustellen wäre eine Klasse weitaus geeigneter als eine ID, die ja nun gerade Alleinstellungsmerkmale hervorheben soll.

                Das ist richtig. Ich wusste nur nicht, dass ein Element zu zwei verschiedenen Klassen gehören kann.
                Hab ich wieder was dazugelernt :-)

                mfG,
                steckl

                1. Hallo,
                  danke an alle.
                  Ich habe den Weg mit der 2ten Class gewählt, funktioniert damit wunderbar,

                  danke.

            2. Ok, danke, entweder ich vergebe eine 2te Class oder ich mache es über den Anfang der ID. Soweit mal vielen Dank, damit müsste es auf jeden Fall umsetzbar sein.

      2. Moin

        Leider nein, außer dass ich genau diese Divs ansprechen will, nicht. Denn die anderen Divs haben teilweise die gleiche Class,

        was hindert dich daran den DIVs 2 Klassen zu verpassen
        <div class="blabla zuaendern">
        hat die Klassen blabla und zuaendern

        Gruß
        rfb

        --
        Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
        (Galileo Galilei)
  3. Moin

    angesichts der vielen "leider nein" in den Antworten auf Lösungsvorschläge bleibt eigentlich nur:
    alle DIVs sind sowieso durchnummeriert (document.getElementsByTagName("div")[0] bis ...[x]),
    Schau in den Quellcode welche Nummern betroffen sind, schreib diese Nummern in ein Array und geh sie der Reihe nach durch.
    Wenn der Quellcode sich mal ändert musst du das Array ändern.

    Gruß
    rfb

    --
    Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
    (Galileo Galilei)
    1. Die Seite wird automatisch generiert, daher ist die Array-Lösung etwas ungeschickt. Ich weiß, ich bin etwas kompliziert, aber ich versuche, ne gute Lösung zu finden...

      angesichts der vielen "leider nein" in den Antworten auf Lösungsvorschläge bleibt eigentlich nur:
      alle DIVs sind sowieso durchnummeriert (document.getElementsByTagName("div")[0] bis ...[x]),
      Schau in den Quellcode welche Nummern betroffen sind, schreib diese Nummern in ein Array und geh sie der Reihe nach durch.
      Wenn der Quellcode sich mal ändert musst du das Array ändern.