getElementsByTagName: Unterauswahl
Damian
- javascript
0 eddi0 small-step0 molily
Hallo,
ich wähle per document.getElementsByTagName("a") in einem Script alle Link-Elemente der Seite aus.
Nun möchte ich aber stattdessen nur diejenigen erhalten, welche innerhalb eines div-Elements einer bestimmten ID stehen (bzw. alternativ diejenigen, welche innerhalb eines li-Elements stehen).
Wie kann ich dies am einfachsten realisieren?
Vielen Dank und einen schönen Tag!
Damian
Hallo,
var links_in_div=document.getElementById('bestimmten__ID').getElementsByTagName("a");
var links_in_li =document.getElementsByTagName('li')[zahl].getElementsByTagName("a");
Gruß aus Berlin!
eddi
Hallo Eddi,
leider funktioniert keine der Varianten.
Für was benötige ich die Zahl bei der list-Auswahl?!?
Hier mal das gesamte Script, vielleicht ist darin ja ein Fehler erkennbar:
<!--
function zeigIcon() {
var zeig = document.getElementsByID("content").getElementsByTagName("a");
for (i=0; i<zeig.length; i++) {
var linkHref = zeig[i].href;
if (linkHref.match(".doc")) {
addIcon(zeig[i], "doc");
}
else if (linkHref.match(".htm")) {
addIcon(zeig[i], "htm");
}
else if (linkHref.match(".pdf")) {
addIcon(zeig[i], "pdf");
}
else if (linkHref.match(".ppt")) {
addIcon(zeig[i], "ppt");
}
else if (linkHref.match(".txt")) {
addIcon(zeig[i], "txt");
}
else if (linkHref.match(".xls")) {
addIcon(zeig[i], "xls");
}
else {
addIcon(zeig[i], "folder");
}
}
}
function addIcon(selLink, ext) {
var img = document.createElement('img');
img.src = ""+ext+".gif";
selLink.parentNode.insertBefore(img, selLink.nextSibling);
}
//-->
Wenn ich var zeig = document.getElementsByTagName("a") schreibe, funktioniert das Script, allerdings erhalte ich dann eben auch ein Bild bei Links, wo ich keines haben möchte...
Viele Grüße
Damian
Re:
Bitte poste/verweise auf das HTML-Dokument!
Gruß aus Berlin!
eddi
Bitte poste/verweise auf das HTML-Dokument!
Auf die Links in diesem Teil würde ich die Funktion gerne anwenden:
<div id="content">
<h2>
Downloads
</h2>
<h3>
Treiber
</h3>
<ul>
<li>CAN-Card</li>
</ul>
<h3>
Tools:
</h3>
<ul>
<li><a href="\folder\subfolder">Folder-Name</a>
(<a href="\folder\subfolder\Text.txt">Text</a>)</li>
</ul>
<h3>
Add On
</h3>
</div>
Viele Grüße
Damian
Re:
var zeig = document.getElementsByID("content").getElementsByTagName("a");
var zeig = document.getElementByID("content").getElementsByTagName("a");
Bitte benutze einen Browser™ mit einer JavaScript-Konsole!
Gruß aus Berlin!
eddi
Hallo eddi,
var zeig = document.getElementByID("content").getElementsByTagName("a");
var zeig = document.getElementById("content").getElementsByTagName("a");
_________________________________^
Gruß,
small-step
var zeig = document.getElementById("content").getElementsByTagName("a");
_________________________________^
So funktioniert's...
Vielen Dank ihr Zwei!
Rock on!
Damian
Hallo Damian,
ich wähle per document.getElementsByTagName("a") in einem Script alle Link-Elemente der Seite aus.
Nun möchte ich aber stattdessen nur diejenigen erhalten, welche innerhalb eines div-Elements einer bestimmten ID stehen (bzw. alternativ diejenigen, welche innerhalb eines li-Elements stehen).
Wie kann ich dies am einfachsten realisieren?
Du könntest zuerst mit getElementsByTagName('a') alle Links in ein Objekt stopfen und dieses anschließend durchgehen. Dabei überprüfst Du mit if(objekt.parentNode.tagName == "li") ob sie Kindelemente einer Liste sind.
Das gleiche geht auch mit dem Div.
Gruß,
small-step
kleine Korrektur...
Du könntest zuerst mit getElementsByTagName('a') alle Links in ein Objekt stopfen und dieses anschließend durchgehen. Dabei überprüfst Du mit if(objekt.parentNode.tagName == "li") ob sie Kindelemente einer Liste sind.
Natürlich musst Du mit if(objekt[i].parentNode.tagName == "li") prüfen. Es sei denn Du erstellst für jeden Link ein neues Objekt.
Gruß,
small-step