Div ID Dynamisch ändern/ generieren
mc.bench
- javascript
0 derletztekick0 Cybaer0 mc.bench0 derletztekick0 Cybaer0 derletztekick0 Cybaer
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
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
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
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
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
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
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
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
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
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
Hallo Cybaer,
Ich habe nicht jedes ausprobiert. Aber IMHO sprichtnichts dagegen. =;-)
Aha, danke für den Hinweis!
Mit freundlichem Gruß
Micha