mc.bench: Div ID Dynamisch ändern/ generieren

Hallo Forum,

ich möchte gerne die ID's meiner Div dynamisch beim schreiben der Seite vergeben. Leider habe ich hier im Forum nichts dazu gefunden oder unter dem falsche Stichwort gesucht.

Könnt ihr mir einen Tip geben wie ich dies Bewerkstelligen kann?

Meine bisherigen Versuche haben irgendwie nicht funktioniert.

Ich füge in einer Funktion ein Object-Tag zusammen.

function schreibeFlash(){
var msg ='';
........
dann den Inhalt

und am Ende schreibe ich das ganze mit innerHTML (document.getElementbyId('Name'+Zufallszahl).innerHTML = msg;)
in ein DIV und dieses DIV soll dabei eine dynamisch generierte ID erhalten.

Habe das ganze dann mit "Name"+Zufallszahl probiert.
Zufallszahl = Math.round(Math.random()*314159265

Das Div schreibe ich mit document.write('< div id="Name'+Zufallszahl+'" .... in die Seite.

Viele Grüße
mc.bench

  1. Hallo mc.bench,

    du hast Zugriff auf alle Deine DIVs mit getElementsByTagName(). Diese stehen Dir zwar nicht beim laden aber immerhin unmittelbar danach zur Verfügung.

    Um diesen nun eine ID zu verpassen, lässt Du sie duch eine Schleife Deiner Wahl laufen und hängst die Eigenschaft (ID) nach diesem Schema ran:

    meinDIV.id = "Dynamische_Id";

    Mit freundlichem Gruß
    Micha

    --
    LeagueEditor JavaScript kostenlose Ligaverwaltung || richtig Messen will gelernt sein
    1. Hi,

      du hast Zugriff auf alle Deine DIVs mit getElementsByTagName(). Diese stehen Dir zwar nicht beim laden aber immerhin unmittelbar danach zur Verfügung.

      Sie stehen bereits während des Ladens zur Verfügung - noch zu ladende DIVs natürlich ausgenommen (;-)).

      Gruß, Cybaer

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      1. Moin,

        erst mal danke für die Antworten.

        Wenn ich Micha's Antwort richtig verstehe, gebe ich dem Div eine feste ID welchen ich mit dem Aufruf "Name.id=" einen neuen Namen zuweise.
        Wie kann ich das mit einem alert überprüfen? Kriege das einfach nicht hin.

        Viele Grüße

        mc.bench

        1. Hi,

          Wie kann ich das mit einem alert überprüfen? Kriege das einfach nicht hin.

          // Erstes DIV
          document.getElementsByTagName("div")[0].id="newID1";
          // Letztes DIV
          document.getElementsByTagName("div")[document.getElementsByTagName("div").length-1].id="newIDlast";

          Also so etwas dann in einer Schleife von 0 bis keiner der Anzahl (length) aller DIVs.

          Aber wozu eigentlich für alle DIVs IDs, wenn man doch ohnehin direkt auf DIV 0 bis legnth-1 zugreifen kann? :-o

          Gruß, Cybaer

          --
          Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
          1. Hi Cybaer,

            ich baue gerade an einem Template für Layer. Da ich nie weiss, das wievielte DIV der Layer auf der Seite ist und es vorkommen kann das mehrere Werbemittel auf einer Seite ausgeliefert werden, möchte ich die ID beim generieren des Layers dynamisch vergeben damit diese nicht doppelt vorkommen.

            Viele Grüße
            mc.bench

      2. Hallo Cybaer,

        Sie stehen bereits während des Ladens zur Verfügung - noch zu ladende DIVs natürlich ausgenommen (;-)).

        Wenn ich die Ladereinfolge beachte, stehen sie mir erst am Ende zur Verfügung. Das Script kann frühstens nach dem Element suchen, wenn es geladen und somit vorhanden sind. Ich will mich nicht um die 1/1000 Sekunde streiten aber es ist immer erst danach...

          
        <div id="foo">Text</div>  
        <script type="text/javascript">var DIV = document.getElementById("foo");</script>
        

        Mit freundlichem Gruß
        Micha

        --
        LeagueEditor JavaScript kostenlose Ligaverwaltung || richtig Messen will gelernt sein
        1. Hi,

          Wenn ich die Ladereinfolge beachte, stehen sie mir erst am Ende zur Verfügung. Das Script kann frühstens nach dem Element suchen, wenn es geladen und somit vorhanden sind. Ich will mich nicht um die 1/1000 Sekunde streiten aber es ist immer erst danach...

          Hmm, ich hatte "nach dem Laden" interpretiert als "wenn der onLoad-Event feuert" (ist ja auch beim IE 4 so - aber der kann ja eh kein W3C-DOM :)).

          <div id="foo">Text</div>
          <script type="text/javascript">var DIV = document.getElementById("foo");</script>

            
          In der Tat kannst Du allerdings sogar schon drauf zugreifen, wenn das Tag geladen ist, der Rest des Elements hingegen noch nicht. Also:  
            
          ~~~html
            
          <div id="foo">  
          <script type="text/javascript">var DIV = document.getElementById("foo");</script>  
          Text</div>  
          
          

          Gruß, Cybaer

          --
          Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
          1. Hallo Cybaer,

            Hmm, ich hatte "nach dem Laden" interpretiert als "wenn der onLoad-Event feuert"

            kann er auch, er würde afaik sogar "warten", bis alle Bilder geladen sind und dann eine Funktion aufrufen...

            In der Tat kannst Du allerdings sogar schon drauf zugreifen, wenn das Tag geladen ist, der Rest des Elements hingegen noch nicht.

            das kann sein, habe ich bisher so noch nie benutzt. Ist das auch in jedem HTML-Tag möglich?

            Mit freundlichem Gruß
            Micha

            --
            LeagueEditor JavaScript kostenlose Ligaverwaltung || richtig Messen will gelernt sein
            1. Hi,

              In der Tat kannst Du allerdings sogar schon drauf zugreifen, wenn das Tag geladen ist, der Rest des Elements hingegen noch nicht.
              das kann sein, habe ich bisher so noch nie benutzt. Ist das auch in jedem HTML-Tag möglich?

              Ich habe nicht jedes ausprobiert. Aber IMHO sprichtnichts dagegen. =;-)

              Gruß, Cybaer

              --
              Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
              1. Hallo Cybaer,

                Ich habe nicht jedes ausprobiert. Aber IMHO sprichtnichts dagegen. =;-)

                Aha, danke für den Hinweis!

                Mit freundlichem Gruß
                Micha

                --
                LeagueEditor JavaScript kostenlose Ligaverwaltung || Spielsüchtig?