getElementsByTagName is not defined
Fredo
- javascript
Hallo ich hab ein problem:
und zwar hab ich eine <ul>, die durch appendChild
ein <li>-Element einbindet..
Jetzt will ich dieses element durch replaceChild überschreiben.
allergings findet der jetzt nicht dieses <li>-Element.
Hier mal der Quelltext-Ausschnitt:
...
dritter_Intervall = window.setInterval("status()", 100);
z = 1;
text = document.createTextNode( z + "%" );
laden = document.createElement("li");
document.getElementsTagName("ul")[2].appendChild(laden);
document.getElementsByTagName("li")[0].appendChild(text);
alert(getElementByTagName("li")[0]);
function status() {
z++;
text2 = document.createTextNode( z + "%");
document.getElementsByTagName("li")[0].replaceChild(text2, getElementsTagName("li")[3].firstChild);
if ( z >= 100 ) {
window.clearInterval(dritter_Interval);
}/*if beenden*/
}/*status beenden*/
...
document.getElementsByTagName("li")[0].replaceChild(text2, getElementsTagName("li")[3].firstChild);
---------------------^
Das findet der nicht
document.getElementsByTagName("li")[0].replaceChild(text2, getElementsTagName("li")[3].firstChild);
---------------------^Das findet der nicht
sry vertan
document.getElementsByTagName("li")[0].replaceChild(text2,
getElementsTagName("li")[3].firstChild);
-------------------^
dieses
Lieber Fredo,
da sehe ich aber was...:
z = 1;
text = document.createTextNode( z + "%" );
laden = document.createElement("li");
document.getElementsTagName("ul")[2].appendChild(laden);
^^^^^^???
document.getElementsByTagName("li")[0].appendChild(text);
alert(getElementByTagName("li")[0]);
^^ ^^ ?? document.getElementsByTagName()!
function status() {
z++;
text2 = document.createTextNode( z + "%");
document.getElementsByTagName("li")[0].replaceChild(text2, getElementsTagName("li")[3].firstChild);
^^ ^^ siehe oben...
Liebe Grüße aus Ellwangen,
Felix Riesterer.
document.getElementsTagName("ul")[2].appendChild(laden);
^^^^^^???
was ist denn da??
alert(getElementByTagName("li")[0]);
^^ ^^ ?? document.getElementsByTagName()!
kannste vergessen!! nur zur probe
document.getElementsByTagName("li")[0].replaceChild(text2, getElementsTagName("li")[3].firstChild);
^^ ^^ siehe oben...
was denn??
MfG Fredo
Hi,
document.getElementsTagName("ul")[2].appendChild(laden);
^^^^^^???
was ist denn da??
Da fehlt was. Es muss getElementsByTagName heißen.
mfG,
steckl
Da fehlt was. Es muss getElementsByTagName heißen.
bin ich blöd!!
die fehlerkonsole zeigt troztdem hier fehler:
1.document.getElementsByTagName("ul")[2].appendChild(laden);
2.document.getElementsByTagName("li")[0].replaceChild(text2, getElementsTagName("li")[3].firstChild);
Hi,
die fehlerkonsole zeigt troztdem hier fehler:
und welche?
1.document.getElementsByTagName("ul")[2].appendChild(laden);
Was ist "laden"?
2.document.getElementsByTagName("li")[0].replaceChild(text2, getElementsTagName("li")[3].firstChild);
Was ist "text2"?
mfG,
steckl
1.document.getElementsByTagName("ul")[2].appendChild(laden);
Was ist "laden"?
laden = document.createElement("li");
2.document.getElementsByTagName("li")[0].replaceChild(text2, getElementsTagName("li")[3].firstChild);
Was ist "text2"?
text2 = document.createTextNode( z + "%");
fehlerkonsole: getElementsTagName("li")[3] is not defined!
Fredo
Ja gut das ist ja nur flüchtigkeit und der andere??
MfG Fredo
Hi,
Ja gut das ist ja nur flüchtigkeit und der andere??
In der anderen Zeile steht das gleiche.
Noch ein Tipp: Lass es für heute gut sein und leg dich ne Runde schlafen. ;-)
mfG,
steckl
ICh glaub du hast dich vertan..
da steht:
document.getElementsByTagName("ul")[2].appendChild(laden);
und
document.getElementsByTagName("li")[3].replaceChild(text2, getElementsByTagName("li")[3].firstChild);
und die fehlerkonsole sagt zu beiden:
has no properties?!
MfG Fredo
Hi,
ICh glaub du hast dich vertan..
Oben stands noch anders.
da steht:
document.getElementsByTagName("ul")[2].appendChild(laden);
Gibt es denn 2 ul-Tags?
und
document.getElementsByTagName("li")[3].replaceChild(text2, getElementsByTagName("li")[3].firstChild);
Und hier 3 li-tags?
und die fehlerkonsole sagt zu beiden:
has no properties?!
mfG,
steckl
document.getElementsByTagName("ul")[2].appendChild(laden);
Gibt es denn 2 ul-Tags?
3!!
document.getElementsByTagName("li")[3].replaceChild(text2, getElementsByTagName("li")[3].firstChild);
Und hier 3 li-tags?
4!!
hier mal der quelltext(schon ein bischen verändert):
<html>
<head><title>dynamische Seite</title>
<style type="text/css">
ul#header {
border:medium double gray;
position:absolute;
top:1em;
left:2.5em;
background-image:url(header.jpg);
}
ul#navigation {
border:medium double gray;
border-top:0px solid white;
position:absolute;
top:9em;
left:2.5em;
width:0em;
height:0em;
overflow:hidden;
background:url(paris.jpg) no-repeat;
background-position:center center;
text-align:center;
}
ul#navigation li {
padding:0.5em;
color:red;
}
ul#prozent {
position:absolute;
top:20em;
left:25em;
list-style:none;
}
</style>
<script type="text/javascript">
var breite_header = 0;
var höhe_header = 0;
var breite_navigation = 0;
var höhe_navigation = 0;
var a = 1;
var i = 1;
var erster_Intervall = window.setInterval("header()", 10);
function header() {
document.getElementById("header").style.width = breite_header +"em";
document.getElementById("header").style.height = höhe_header + "em";
a++;
breite_header = breite_header + 1.15;
höhe_header = höhe_header + 0.16;
if ( a >= 50 ) {
window.clearInterval(erster_Intervall);
zweiter_Intervall = window.setInterval("navigation()", 10);
}/*if beenden*/
}/*header() beenden*/
function navigation() {
document.getElementById("navigation").style.width = breite_navigation + "em";
document.getElementById("navigation").style.height = höhe_navigation + "em";
i++;
breite_navigation = breite_navigation + 0.15;
höhe_navigation = höhe_navigation + 0.6;
if ( i >= 50 ) {
window.clearInterval(zweiter_Intervall);
dritter_Intervall = window.setInterval("status()", 100);
}/*if beenden*/
}/*navigation() beenden__________________________________________________________________________*/
z = 1;
text = document.createTextNode( z + "%" );
laden = document.createElement("li");
document.getElementsByTagName("ul")[2].appendChild(laden);
document.getElementsByTagName("li")[0].appendChild(text);
alert(getElementsByTagName("li")[0]);
function status() {
z++;
text2 = document.createTextNode( z + "%");
document.getElementsByTagName("ul")[2].replaceChild(text2, getElementsByTagName("li")[3].firstChild);
if ( z >= 100 ) {
window.clearInterval(dritter_Interval);
}/*if beenden*/
}/*status beenden*/
</script>
</head>
<body>
<ul id="header">
</ul>
<ul id="navigation">
<li></li>
<li>1</li>
<li>2</li>
</ul>
<ul id="prozent">
</ul>
</body></html>
hier mal der quelltext(schon ein bischen verändert):
Dein Code steckt voller Unsauberkeiten.
Die Fehlermeldungen stammen von Tippfehlern und vergessenen Objekten. Dann gibt es eine Menge globaler Variabeln, seltsame Verschachtelungen deiner Zugriffe. Mir ist nicht ganz klar was du erreichen willst mit replaceChild. Du ersetzt ja die LI Elemente, d.h. sie sind dann nicht mehr da.
Struppi.
Mir ist nicht ganz klar was du erreichen willst mit replaceChild.
ich will, dass sich der wert des elementes ändert!!
Du ersetzt ja die LI Elemente, d.h. sie sind dann nicht mehr da.
aber ich überschrieb doch nur das heißt sie sind sofort wieder da oder nicht??
Mir ist nicht ganz klar was du erreichen willst mit replaceChild.
ich will, dass sich der wert des elementes ändert!!
Wer hat hier was geschrieben? Bitte lass die Zitatzeichen stehen.
Du ersetzt ja die LI Elemente, d.h. sie sind dann nicht mehr da.
aber ich überschrieb doch nur das heißt sie sind sofort wieder da oder nicht??
Nein, du ersetzt ein Element mit einem anderen. D.h. das li Element ist weg.
Struppi.
Nein, du ersetzt ein Element mit einem anderen. D.h. das li Element ist weg.
ursprünglich wollte er Texte der li-Elemente tauschen ...
document.getElementsByTagName("li")[3].replaceChild(text2, getElementsByTagName("li")[3].firstChild);
^^^^^^^^
document.getElementsByTagName("li")[3].replaceChild(text2, document.getElementsByTagName("li")[3].firstChild);
jetzt geht es natürlich ganz ins Wilde, wenn ul und li gemixt werden.
document.getElementsByTagName("ul")[2].replaceChild(text2, getElementsByTagName("li")[3].firstChild);
Fraglich ist, ob jedes li-Element auch einen Text hat, ob li-firstChild existiert ....
Gruß planB
Hi,
hier mal der quelltext(schon ein bischen verändert):
Bisschen hättest du schon noch kürzen können ;-)
Du rufst dein Javascript auf, bevor der Quellcode fertig geladen ist und zu dem Zeitpunkt gibt es die Elemente die du ansprichst anscheinend noch nicht.
mfG,
steckl
hallo,
da steht:
document.getElementsByTagName("ul")[2].appendChild(laden);
gibt es wirklich 3 ul-Blöcke?
document.getElementsByTagName("li")[3].replaceChild(text2, getElementsByTagName("li")[3].firstChild);
document.getElementsByTagName("li")[3].replaceChild(text2, document.getElementsByTagName("li")[3].firstChild);
übersichtlicher wäre es, du würdest dich immer nur um einen ul-Block kümmern, z.B.:
var ul2=document.getElementsByTagName("ul")[2];
ul2.appendChild(laden);
und dann die zugehörigen li-Elemente
var lis=ul2.getElementsByTagName("li");
if {lis.length>3)
lis[3].replaceChild(text2,lis[3].firstChild);
else
alert( "lis.length: "+lis.length);
so kannst du evtl einen falschen Index aufspüren.
Gruß planB
danke
probier ich mal
ol2 = document.getElementsByTagName("ol")[0];
<body>
<ul id="header">
</ul>
<ul id="navigation">
<li></li>
<li>1</li>
<li>2</li>
</ul>
<ol id="prozent">
</ol>
</body>
warum no properties???
warum no properties???
Weil Javascript nicht hellsehen kann.
Struppi.
Hallo ich hab ein problem:
und zwar hab ich eine <ul>, die durch appendChild
ein <li>-Element einbindet..Jetzt will ich dieses element durch replaceChild überschreiben.
allergings findet der jetzt nicht dieses <li>-Element.
Hier mal der Quelltext-Ausschnitt:
...
dritter_Intervall = window.setInterval("status()", 100);
z = 1;
text = document.createTextNode( z + "%" );
// Referenz auf Textknoten
laden = document.createElement("li");
// Zeiger "laden" füllen mit Referenz auf erzeugtes Objekt LI-TAG
document.getElementsTagName("ul")[2].appendChild(laden);
// .appendChild(laden) Objekt LI in HTML-DOM anhängen an ein Objekt
// appendChild ist Funktion von Objekt ....[2]
// wegen Punktnotation
// document.getElementsByTagName() .... Zeiger auf ein Objekt liefern
// Funktionswert wird nicht angefordert, also Objektzeiger
// nicht als Referenz gespeichert, also append an einen
// nicht vorhandenen Zeiger
// Funktionssyntax beachten: function()[2] also
// Funktionsaufruf mit Array-Index
Gruss Tom