Link ohne id mit javascript ändern

- javascript
1 ChrisB0 JonnyX
1 ChrisB0 JonnyX
0 Klawischnigg0 JonnyX
0 JonnyX
0 MudGuard
0 Patrick Andrieu
0 JonnyX
Hallo erstmal
Ich möchte gerne mit einem javascript einen Link ändern. Dieser Link steht in einem li Element, das allerdings keine id hat, jedoch immer das 5. li Element in einem Div-Tag mit id ist. Wie kann ich den Link ändern, also ein li ohne id ansprechen?
Schonmal Danke für eure Antworten...
Hi,
Ich möchte gerne mit einem javascript einen Link ändern. Dieser Link steht in einem li Element, das allerdings keine id hat, jedoch immer das 5. li Element in einem Div-Tag mit id ist. Wie kann ich den Link ändern, also ein li ohne id ansprechen?
getElementsByTagName - als Methode auf dem DIV aufgerufen.
MfG ChrisB
Hi,
Ich möchte gerne mit einem javascript einen Link ändern. Dieser Link steht in einem li Element, das allerdings keine id hat, jedoch immer das 5. li Element in einem Div-Tag mit id ist. Wie kann ich den Link ändern, also ein li ohne id ansprechen?
getElementsByTagName - als Methode auf dem DIV aufgerufen.
MfG ChrisB
Das sieht bei mir jetzt so aus:
(
document.getElementById("links) {
document.getElementsByTagName("li")[6].href = "link";
}
);
Allerdings funktioniert es nicht. Was mache ich falsch?
Hi,
Das sieht bei mir jetzt so aus:
(
document.getElementById("links) {
document.getElementsByTagName("li")[6].href = "link";}
);Allerdings funktioniert es nicht. Was mache ich falsch?
So gut wie alles.
Was soll ein alleinstehendes Statement
document.getElementById("links)
bewirken?
Wenn du mit dem ermittelten Element überhaupt nichts machst - wozu ermittelst du es dann?
document.getElementsByTagName("li")[6].href = "link";
Haben LI-Elemente in HTML ein href-Attribut?
(Du kannst ihnen zwar eine JavaScript-Eigenschaft dieses Namens verpassen, aber das bewirkt natürlich nichts hilfreiches.)
MfG ChrisB
Hi,
Das sieht bei mir jetzt so aus:
(
document.getElementById("links) {
document.getElementsByTagName("li")[6].href = "link";}
);Allerdings funktioniert es nicht. Was mache ich falsch?
So gut wie alles.
Was soll ein alleinstehendes Statement
document.getElementById("links)
bewirken?
Wenn du mit dem ermittelten Element überhaupt nichts machst - wozu ermittelst du es dann?
document.getElementsByTagName("li")[6].href = "link";
Haben LI-Elemente in HTML ein href-Attribut?(Du kannst ihnen zwar eine JavaScript-Eigenschaft dieses Namens verpassen, aber das bewirkt natürlich nichts hilfreiches.)
MfG ChrisB
Also die Seite, die ich ändern will sieht so aus:
<div id="links">
<ul>
<li id="link_index"><a href="link1">Link1</a></li>
<li>
<a href="link2">Link2
</a>
</li>
<li id="link\_report">
<a href="link3">Link3
</a>
</li>
<li><a href="link4">link4</a></li>
<li>
<a href="link5(den will ich ändern">link5
</a>
</ul>
</div>
Hi there,
<a href="link5(d will ich änder dern">link5 [...]
also, wenn ich richtig mitgezählt habe, ist das der 5.Link;) Jetzt solltest Du aber schon d'raufkommen... (wobei die Betonung auf LINK liegt, der gemeinhin mit A eingeleitet wird)
Hm bei mir sieht das jetzt so aus, aber es funktioniert immernoch nicht...
document.getElementById("links").document.getElementsByTagName("a")[5].href = "link";
Hallo JonnyX!
document.getElementById("links").document.getElementsByTagName("a")[5].href = "link";
Liest Du auch alle Antwort(en) die Du bekommst? Wohl nicht, oder?
Viele Grüße aus Frankfurt/Main,
Patrick
Liest Du auch alle Antwort(en) die Du bekommst? Wohl nicht, oder?
Viele Grüße aus Frankfurt/Main,
Patrick
Doch, allerdings funktioniert das auch nicht. Da müsste doch prinzipiell genau das gleiche bewirkt werden, wie bei dem:
document.getElementById("links").document.getElementsByTagName("a")[5].href = "link";
Aber werder das eine, noch das andere funktionieren.
Hallo JonnyX!
Doch, allerdings funktioniert das auch nicht. Da müsste doch prinzipiell genau das gleiche bewirkt werden, wie bei dem:
document.getElementById("links").document.getElementsByTagName("a")[5].href = "link";
^^^^^^^^
Müsste prinzipiell, wenn Du nicht nochmal das ganze »document« nach a-Elementen durchsuchen würdest...
Viele Grüße aus Frankfurt/Main,
Patrick
Hallo JonnyX!
Doch, allerdings funktioniert das auch nicht. Da müsste doch prinzipiell genau das gleiche bewirkt werden, wie bei dem:
document.getElementById("links").document.getElementsByTagName("a")[5].href = "link";
^^^^^^^^Müsste prinzipiell, wenn Du nicht nochmal das ganze »document« nach a-Elementen durchsuchen würdest...
Viele Grüße aus Frankfurt/Main,
Patrick
var theDiv = document.getElementById("links");
theDiv.getElementsByTagName('li')[5].firstChild.href = 'foo.html';
funktioniert aber auch nicht und wenn ich bei »» document.getElementById("links").document.getElementsByTagName("a")[5].href = "link";
das 2. document weglasse ändert sich auch nichts...
Okay es funktioniert doch.
Vielen Dank für eure geduldige Hilfe!
Okay es funktioniert doch.
und "funktioniert nicht", ist keine Fehlerbeschreibung. Ich weoiß ncith, warum dich noch niemand auf die Fehlerkonsole aufmerksam gemacht hat. Man hätte sich einige Posting ersparen könne, denn du hättest einige Fehler selber gefunden.
Struppi.
Hi,
document.getElementById("links) {
Was soll ein alleinstehendes Statement
document.getElementById("links)
bewirken?
Einen Syntax-Fehler, da der String nicht mehr geschlossen wird ...
cu,
Andreas
Hallo JonnyX!
Das sieht bei mir jetzt so aus:
(
document.getElementById("links) {
document.getElementsByTagName("li")[6].href = "link";}
);Allerdings funktioniert es nicht. Was mache ich falsch?
Nahezu alles ;)
Wenn Du document.getElementsByTagName('li') schreibst, erhälst du die Collection aller LI-Element im Dokument. Willst Du nur diejenigen, die im DIV#links enthalten sind, musst das auch angeben. Zum Beispiel so:
var theDiv = document.getElementById("links");
Dann gibt Dir:
theDiv.getElementsByTagName('li')
die Collection der LI-Elemente (ein Array), die in diesem DIV#links enthalten sind.
Aber Listenpunkte haben keinen Attribut href - aber A-Elemente. Vielleicht hilft hier firstChild:
theDiv.getElementsByTagName('li').firstChild.href = 'foo.html';
, vorausgesetzt, dein erstes Listenpunktkind ist kein Zeilenumbruch noch ein Leerzeichen sondern direkt <a ...>
Viele Grüße aus Frankfurt/Main,
Patrick
Bitte lesen:
theDiv.getElementsByTagName('li')[index].firstChild.href = 'foo.html';
Grmbl, dabei benutze ich doch die Vorschau!
Viele Grüße aus Frankfurt/Main,
Patrick
Hm jetzt habe ich doch noch ein Problem.
Wenn ich einen neuen link einfügen will (an 4. Stelle),dann kommt in der Fehlerkonsole die Meldung "node was not found". Wo liegt da der Fehler?
Wenn ich statt insertBefore appendChild nehme , dann wird der Link zwar eingefügt, aber er steht dann ganz am Ende.
Hier mein Code:
document.getElementById("links").insertBefore(neuB, document.getElementById("links").getElementsByTagName("a")[4]);
Wenn ich einen neuen link einfügen will (an 4. Stelle),dann kommt in der Fehlerkonsole die Meldung "node was not found". Wo liegt da der Fehler?
..
document.getElementById("links").getElementsByTagName("a")[4]);
JS zählt immer ab 0, d.h. die 4. Stelle ist [3]
Struppi.
JS zählt immer ab 0, d.h. die 4. Stelle ist [3]
Struppi.
Auch das ändert nichts.
Die Fehlermeldung belibt die gleiche. Woran könnte das liegen?
Auch das ändert nichts.
Die Fehlermeldung belibt die gleiche. Woran könnte das liegen?
Kann ich dir natürlich nicht sagen, ausser daran dass das Element nicht existiert.
Struppi.