getelementbyId findet das element nicht
hartmuth
- javascript
0 Rouven3 Cheatah0 ChrisB
0 Gunnar Bittersmann
0 ChrisB0 Gunnar Bittersmann
Hallo,
hier mein Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/Strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>eddi Schaltplan (beta)</title>
<meta http-equiv="Content-Type" content="text/html" charset=iso8859-1>
<link REL="StyleSheet" TYPE="text/css" HREF="standard.css" />
</head>
<script>
function dialNeu() {
document.getElementbyId('dialog').top='200px';
}
</script>
<body>
<div id='dialog'>
HAAAAAALLLOOOOOO!
</div>
<a href='javascript:dialNeu()'>los gehts</a>
</body>
</html>
Sobald ich das document.getElementbyId('dialog').top='200px'; in die Funktion setze heist's: dialNeu() was not defined!
Warum klappt das nicht?
Hello,
Warum klappt das nicht?
vmtl. möchtest du getElementById richtig schreiben - ein Blick in die Firefox Fehlerkonsole oder etwas vergleichbares könnte helfen.
MfG
Rouven
Hello,
Warum klappt das nicht?
vmtl. möchtest du getElementById richtig schreiben - ein Blick in die Firefox Fehlerkonsole oder etwas vergleichbares könnte helfen.MfG
Rouven
»»
Sorry, das mit dem Schreibfehler war nur hier, wiel ich natürlich nur eine verkürzte Fassung wiedergegeben hab.
Im Script ist es richtig.
Die Fehlerkonsole meldet eben, dass 'dialog' nicht definiert sei.
vG Hartmuth
@@Hartmuth:
nuqneH
Sorry, das mit dem Schreibfehler war nur hier, wiel ich natürlich nur eine verkürzte Fassung wiedergegeben hab.
Wie wär’s denn mit der Langfassung? Am besten in Form eines Links zu deiner Seite.
Es ist nämlich nicht natürlich, hier Ausschnitte des Quellcodes zu zeigen, in denen der Fehler gar nicht auftritt.
Qapla'
Hi,
<meta http-equiv="Content-Type" content="text/html" charset=iso8859-1>
das <meta>-Element kennt kein charset-Attribut. In XHTML muss *jeder* Attributwert in Anführungszeichen stehen.
<link REL="StyleSheet" TYPE="text/css" HREF="standard.css" />
In XHTML kennt das <link>-Element weder ein REL- noch ein TYPE- oder ein HREF-Attribut.
<script>
Das zwingend benötigte type-Attribut fehlt.
document.getElementbyId('dialog').top='200px';
Das document-Objekt kennt von sich aus keine getElementbyId-Methode. Solltest Du getElementById meinen: Das daraus resultierende Objekt dürfte keine top-Eigenschaft besitzen.
<a href='javascript:dialNeu()'>los gehts</a>
Ob welchen Grundes behauptest Du hier, eine Ressource zu verlinken, ohne dies aber zu tun? Verwende das onclick-Attribut eines *semantisch passenden* Elements.
Sobald ich das document.getElementbyId('dialog').top='200px'; in die Funktion setze heist's: dialNeu() was not defined!
Erst mal gibt es sicher eine andere Fehlermeldung. Der Rest resultiert vermutlich aus der Vielzahl der Fehler, die Du insgesamt gemacht hast.
Cheatah
Hi,
document.getElementbyId('dialog').top='200px';
Das document-Objekt kennt von sich aus keine getElementbyId-Methode. Solltest Du getElementById meinen: Das daraus resultierende Objekt dürfte keine top-Eigenschaft besitzen.
Aber es dürfte sich problemlos eine solche verpassen lassen.
MfG ChrisB
@@hartmuth:
nuqneH
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/Strict.dtd">
Der system identifier (URI) ist falsch. ↗SELFHTML: http://de.selfhtml.org/html/allgemein/grundgeruest.htm#dokumenttyp@title=Dokumenttyp-Deklaration.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
@xml:lang wirkt nur bei Verarbeitung von XHTML als XML. In HTML-kompatiblem XHTML ist zusätzlich @lang anzugeben. ↗SELFHTML: <http://de.selfhtml.org/html/xhtml/unterschiede.htm#lang@title=Unterschied: Das Universalattribut lang>.
<meta http-equiv="Content-Type" content="text/html" charset=iso8859-1>
<link REL="StyleSheet" TYPE="text/css" HREF="standard.css" />
Du solltest dir die ganze Seite <http://de.selfhtml.org/html/xhtml/unterschiede.htm@title=Unterschiede zwischen XHTML und HTML> durchlesen: http://de.selfhtml.org/html/xhtml/unterschiede.htm#kleinschreibung@title=Kleinschreibung, <http://de.selfhtml.org/html/xhtml/unterschiede.htm#leere_elemente@title=leere Elemente>.
Und auch <http://de.selfhtml.org/html/kopfdaten/meta.htm#zeichenkodierung@title=Angabe zur Zeichenkodierung>.
<script>
Und auch <http://de.selfhtml.org/javascript/intro.htm#javascriptbereiche@title=JavaScript-Bereiche in HTML definieren>.
<body>
--8<--
<a href='javascript:dialNeu()'>los gehts</a>
In der Strict-Variante darf 'a' (wie auch andere Inline-Elemente oder Text) kein Kind von 'body' sein. ↗SELFHTML: http://de.selfhtml.org/html/allgemein/grundgeruest.htm#dokumenttyp@title=Dokumenttyp-Deklaration.
Qapla'
Hi,
Sobald ich das document.getElementbyId('dialog').top='200px'; in die Funktion setze heist's: dialNeu() was not defined!
Das ist extrem unwahrscheinlich. Stelle bitte ein Beispiel mit *exakt* dem Code, den du verwendest, online bereit; und sage dazu, welcher Browser in welcher Version auf welchem OS angeblich diese Meldung bringt.
Sobald ich in deinem Script getElementbyId zu getElementById korrigiere, macht dein Script in meinem Test (Firefox 3.04, Vista) genau das, was es soll - es verpasst der JavaScript-Repräsentation des DIV-Elements mit der ID "dialog" eine neue Eigenschaft top, und weisst dieser den Wert "200px" zu.
Davon abgesehen ergeben sich natürlich keine weiteren Veränderungen, erst recht keine sichtbaren. Das wäre vielleicht anders, wenn du den Wert der CSS-Eigenschaft top manipulieren würdest, aber das tust du ja nicht - dazu fehlt der Zugriff auf das style-Objekt unterhalb des DIVs.
MfG ChrisB
Hi,
Sobald ich das document.getElementbyId('dialog').top='200px'; in die Funktion setze heist's: dialNeu() was not defined!
OK- soweit hab ichs, es war noch ein Schreibfehler.
Das ist extrem unwahrscheinlich. Stelle bitte ein Beispiel mit *exakt* dem Code, den du verwendest, online bereit; und sage dazu, welcher Browser in welcher Version auf welchem OS angeblich diese Meldung bringt.
Jetzt kommt keine Fehlermeldung mehr
Sobald ich in deinem Script getElementbyId zu getElementById korrigiere, macht dein Script in meinem Test (Firefox 3.04, Vista) genau das, was es soll - es verpasst der JavaScript-Repräsentation des DIV-Elements mit der ID "dialog" eine neue Eigenschaft top, und weisst dieser den Wert "200px" zu.
Davon abgesehen ergeben sich natürlich keine weiteren Veränderungen, erst recht keine sichtbaren. Das wäre vielleicht anders, wenn du den Wert der CSS-Eigenschaft top manipulieren würdest, aber das tust du ja nicht - dazu fehlt der Zugriff auf das style-Objekt unterhalb des DIVs.
MfG ChrisB
Genau, es passiert nichts.
in der style datei steht:
#dialog {
position: absolute;
background-color: #ffffff;
top: 200px;
left: -400px;
z-index:500;
height: 400px;
width: 350px;
}
auf den top-Wert 200 wird nicht reagiert.
wie, mir fehlt der Zugriff auf das style-Objekt?
Wie erreiche ich das?
@@hartmuth:
nuqneH
wie, mir fehlt der Zugriff auf das style-Objekt?
Wie erreiche ich das?
Indem du bereits gegebene Antworten liest.
Qapla'
@@hartmuth:
nuqneH
function dialNeu() {
document.getElementbyId('dialog').top='200px';
}
Was willst du damit bezwecken, diesem Elementobjekt die Eigenschaft 'top' zu geben? Doch nicht etwa ihm die <http://de.selfhtml.org/javascript/objekte/style.htm@title=CSS-Eigenschaft 'top' zu geben>?
Und wann die CSS-Eigenschaft 'top' [CSS2 §9.3.2] Wirkung zeigt, weißt du?
Qapla'