Gunnar Bittersmann: Links mit bestimmter Klasse suchen und Linktexte ausgeben

Beitrag lesen

@@limu:

nuqneH

var bodyTag = document.getElementsByTagName("body");
function breadcrumbfunction() {
for (var i = 0; i < bodyTag.length; ++i) {

Es darf nur ein body-Element im DOM sein. Dieses ist in JS per document.body ansprechbar. document.getElementsByTagName("body") und die „Schleife“ über das eine gefundene Element machen keinen Sinn.

document.write('> ' + document.getElementsByClassName('isActive').text);

document.getElementsByClassName('isActive') liefert alle Elemente der betreffenden Klasse (in modernen Browsern, die das unterstützen). Hier wäre eine Schleife über die gefundenen Elemente angebracht.

Und eine Abfrage, ob die Methode existiert, damit ältere Browser nicht mit einem Fehler aussteigen:

var breadcrumbElements = document.getElementsByClassName ? document.getElementsByClassName('isActive') : [];

Es gibt keine Eigenschaft 'text' für Elementobjekte. Aber '[link:https://developer.mozilla.org/de/docs/DOM/Node.textContent@title=textContent]'.

Und document.write() ist so gut wie nie eine gute Idee. Besser textContent bzw. innerHTML verwenden (oder DOM-Methoden).

Die Klassenbezeichnung "active" ist auch unglücklich gewählt, da sie an die CSS-Preudoklasse ':active' erinnert, die etwas ganz anderes tut. Besser wäre meist "selected" oder "current" oder hier meinetwegen "breadcrumb-path".

Jetzt solltest du weiterkommen.

Qapla'

--
„Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)