[JavaScript] alle Id's aus der Datei auslesen

CrazySash

Well-known member
ID: 93631
L
20 April 2006
2.273
103
Moinsen.

Ich bins schon wieder. Diesmal allerdings mit JavaScript...

Bin ich halt doch nich nicht so fit drinne :roll:

Folgende Sache:

Ich habe mehrere HTML Tags in meinem Quelltext, die mit dem Attribut "id" ausgestattet sind.

Die Anzahl sowie der Name sind unbekannt. Gibt es eine Möglichkeit alle id-werte zu finden und auszulesen? Gebauchen tue ich von den ganzen Werten dann hinterher nur ein paar bestimmte, aber das bekomme ich selbst hin.
 
Da wird Dir nicht viel anderes übrig bleiben, als Dich vom Body-Knoten durch alle Knoten durchzuhangeln und das id-Attribut zu prüfen. Sähe dann etwa so aus:
Code:
var ids = Array();
parseTree = function(node) {
  if (node.id) {
    ids.push(node.id);
  }
  for (var i = 0; i < node.childNodes.length; i++) {
    parseTree(node.childNodes[i]);
  }
}
parseDocument = function() {
  var node = document.getElementsByTagName("body")[0];
  parseTree(node);
  alert("IDs:\n"+ids.join("\n"));
}
 
danke, ich werde mal deinen Code testen und versuchen zu verstehen.

Eine Frage noch: Für die Ladezeit kommt es nicht gut, wenn jedesmal die ganze Seite durchforstet wird sicherlich oder hat das kaum beeinträchtigungen?
 
Für die Ladezeit hat das eigentlich gar keine Beeinträchtigungen, da Du das Skript erst nach dem Laden (also via <body onload="">) aufrufen darfst. Erst dann ist ja sichergestellt, dass der ganze DOM-Baum vorhanden ist.

Und wie performancelastig das insgesamt hängt stark von der Größe des Dokumentes ab. Aber es dürfte sich eigentlich noch in Grenzen halten.
 
eine andere Möglichkeit und nicht so performance-lastig wäre es, mittels RegExp die ids zu zählen. Du hast dann zwar die anzahl und wo sie stehen, aber ob es dir weiterhilft weiß ich nciht, denn du hast ja dann keinen DOM-"Link".
 
eine andere Möglichkeit und nicht so performance-lastig wäre es, mittels RegExp die ids zu zählen.
Das könnte aber auch schiefgehen.
HTML:
<h1 id="header">Test mit IDs</h1>
<p id="text">Hier arbeiten für mit IDs. Im HTML-Code durch id="..." ausgedrückt.<br />
Zum Beispiel: <span id="code"><p id="xxx">....</p></span></p>
Wie viele IDs sieht du hier ? Und wie viele ein solches Script ? ;)
 
Das könnte aber auch schiefgehen.
HTML:
<h1 id="header">Test mit IDs</h1>
<p id="text">Hier arbeiten für mit IDs. Im HTML-Code durch id="..." ausgedrückt.<br />
Zum Beispiel: <span id="code"><p id="xxx">....</p></span></p>
Wie viele IDs sieht du hier ? Und wie viele ein solches Script ? ;)

lässt sich mit RegExp auch lösen (<|<) ;) allerdings macht das ja sowieso keinen Sinn, da dies kein HTML-Code mehr in dem Sinne ist sondern eine Bildschirmausgabe die NICHT als Tag interpretiert werden soll und von daher auch nicht mehr wichtig. DOM würde dieses ja auch nicht mehr erkennen
 
Zuletzt bearbeitet:
Hallo, wie genau würde das mit RegExp gehen?

Also interessieren würden mich eh nur ids, die nach einem bestimmten Muster aufgebaut sind.

deren Inhalt möchte ich halt durch neuen ersetzen. Darum geht es.:roll:
 
entweder id="cid123" oder id="id324324"

Also am Anfang steht cid bzw. id und dann kommt noch eine Zahl

Nur diese ID's möchte ich haben.
 
Zuletzt bearbeitet:
das sieht doch gut aus.

EDIt: mom ich wollte aber den gesamten namen also id324 bzw. cid2354 haben... nich nur die Zahl... Sorry, wenn das oben nicht so deutlich wurde...

und wenn ich jetzt meine Seite habe,

wie muss im Ansatz son Javascript dann aussehen.

Vielleicht kannst ja mal nen Lnk zu nem guten tut geben...
 
ok vielen dank, ich werd mich mal versuchen...

ok, ich merke schon, dass nächste was ich lernen muss ist javascript

<p id="id2657">cid34asdasd
<span id="test">Test</span>
<script type="text/javascript">
auss = document.all.tags("HTML")[0].innerHTML;

Ergebnis = auss.match(/(?<=id=")(cid|id)\d{1,}(?=")/iU);

if (Ergebnis)
alert(Ergebnis);
</script>
 
Zuletzt bearbeitet: