gruss jense
...
wenn ich aber das gleiche mit js machen möchte dann???
... und auf Mathias' vorarbeit bauend, ...
...
Beispiel:
var alleDivElemente = document.getElementsByTagName("div");
for (var i = 0, divElement, aElemente; divElement = alleDivElemente[i]; i++) {
aElemente = divElement.getElementsByTagName("a");
for (var j = 0, aElement; aElement = aElemente[i]; i++) {
alert("mach was mit aElement");
}
}
> ...
> Die Methode getElementsByTagName existiert nicht nur bei
> document, sondern auch bei Elementobjekten. Du kannst also
> erst eine Liste aller div-Elemente im Dokument abfragen und
> dann für jedes div-Element eine Liste der a-Elemente darin.
[\*1]
> ...
> getElementsByTagName gibt eine NodeList zurück, die besteht
> bloß aus Elementen, der kann direkt man keine style-Eigenschaften
> zuweisen. Wenn man allen Knoten darin Eigenschaften zuweisen
> will, muss man sie mit einer for-Schleife durchlaufen, ...
[\*2]
... moechte ich wieder mal
kraeftig die werbetrommel fuer [[Array]]-iteratoren ruehren -
auf bessere wahrnehmung, groessere akzeptanz und breiteren
einsatz ebendieser hoffend - der obige in beschreibende prosa
gefasste text liest sich in ausdrucksstarke[tm] javascript-syntax
gegossen dann so:
~~~javascript
Array.forEach(document.getElementsByTagName("div"), (function (elm/*, idx, arr*/) { // [*1]
Array.forEach(elm.getElementsByTagName("a"), (function (elm/*, idx, arr*/) { // [*2]
elm.style.display = "none";
}));
}));
siehe dazu auch:
developer.mozilla.org: Iteration methods ...
die grosse masse der dort aufgefuehrten iteratoren wurde von
mozilla.org im zuge von JavaScript 1.6 eingefuehrt.
trotzdem lassen sich scripte auf diese elegante art fuer alle
modernen browser entwickeln, denn vom start weg gab es diese
funktionalitaeten emulierende bibliotheken - auf mozilla.org
findet sich mittlerweile zu jedem iterator die passende umsetzung.
weitere archivierte forums-threads zu diesem thema:
Array.indexOf("String") läuft in FF, nicht aber in MSIE
Alle Elem. einer Klasse visible/hidden setzten
alle checkboxen an? - konzept: [NodeList]s und array-iteratoren
Zugriff auf alle Input-Felder - [Array.filter]
Suchen und Ersetzen - Typumwandlung mit dem Array-iterator "map"
Radiobutton abwählen/demarkieren/unchecken
auf Listen operieren, iteratoren/accessoren, Lisp im Anzug von C
unverbluehmte eigenwerbung:
DOM-getter und array-iteratoren - scripte schneller entwickeln
NodeLists und Array-Iteratoren - Scripte schneller entwickeln
messianische gruesse - peterS. - pseliger@gmx.net
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - Douglas Crockford
ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]