Fehler: Uncaught TypeError: Cannot read property', Wert' null
möchte ich wissen, warum dieser Fehler auftreten "Uncaught TypeError: Cannot read property "value " null"
und wohin ich gehe falsch gemacht?
function create()
{
var textbox=document.createElement("input");
var para=document.createElement("p");
para.setAttribute("id","p");
textbox.type='text';
textbox.value='asdf';
textbox.setAttribute("id","textbox");
textbox.setAttribute("onblur",document.getElementById('p').innerHTML=document.getElementById('textbox').value);
document.body.appendChild(textbox);
}
- Wie sollten wir das wissen? Bitte siehe css-tricks.com/reduced-test-cases.
- Es bedeutet, dass Sie versuchen, eine Eigenschaft mit dem Namen
value
aus einer variable, die null ist. - Denn es gibt kein element mit der id
textbox
? - Sorry, aber könnte diese Titel werden mehr Generika?
- mögliche Duplikate von Warum jQuery oder eine DOM-Methoden wie getElementById nicht finden, das element? - Obwohl ich denke, die Missverständnisse, die in dieser Frage unterscheiden sich etwas von den Missverständnissen angenommen, daß die kanonische doppelte.
- Sie haben Ihren
p
element, aber noch nicht eingefügt in die DOM noch, so dass Sie nicht verwenden könnendoc.getEleById
, weil es IN das Dokument noch. - meinst du etwas wie dieses
JavaScript<HTML<CSS>>
😉 - Die downvotes sind ein bisschen übertrieben. Die Frage ist ok, nur der Titel ist schlecht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bevor Sie Hinzugefügt haben, ein element an den DOM, können Sie nicht, suchen Sie Sie mit
.getElementById()
. Dieser Aufruf gibtnull
, und das ist, was der Fehler ist Ihnen zu sagen.Es ist sinnlos, auf jeden Fall tun, da hast du schon Variablen, die sich direkt auf das neu erstellte Elemente. Bearbeiten oh warte, ich sehe, was du versuchst zu tun.
Erste, es gibt keinen Grund für die Verwendung
.setAttribute()
hier. Setzen Sie einfach die Eigenschaften, die direkt auf den DOM-Knoten, die Sie erstellt haben. Sie müssen das "onblur" - Eigenschaft eine Funktion:<p>
Sie erstellt haben, denn wenn Sie das nicht tun, dass es keinen Sinn alle von ihm.Ich werde versuchen, die Lösung der Probleme mit Ihrem code (in der Hoffnung, dass Sie auf Magische Weise passen Sie Ihre HTML):
Ich angetroffen habe ein ähnliches problem vor:
"Uncaught TypeError: Cannot read property 'value' of null"
Bedeutet, dass Sie wahrscheinlich nicht mit einem id um die Funktion zu Blick für den Wert, also kann er es abrufen.
Beispiel:
Diese erhalten Sie folgende Fehlermeldung, die Sie erhalten.
Richtige Ansatz:
Hoffe, das hilft!
ok, ich war vor dem gleichen problem, eine Sache zu tun,die Registerkarte "Skript" für Ihre javascript-Datei legen Sie an das Ende des html so, dass alle Eingaben in html-Seite kommt, kann erkannt werden, indem Sie die js-Datei ,da javascript kommt nach dem Wert, den Sie spielen möchten mit
Sollten Sie ändern Sie die Funktion wie folgt, für Sie zu arbeiten.
Wenn Sie verwenden möchten setAttribute dann müssen Sie wickeln Sie es in eine Funktion für die onBlur Veranstaltung
Oder Sie können die Kasse jsfiddle, um zu sehen, wie es funktioniert.
Es wurde empfohlen zu prüfen, in einer vorherigen Antwort, wenn das element null ist, aber in diesem Fall ist es nicht erforderlich, wie Sie die Erstellung aller Elemente in den Funktionen, so dass alle Elemente vorhanden.
Auch was planen Sie zu tun, mit dem Absatz-element?
Vielleicht wickeln Sie den Eingang in den Absatz?
Wenn Sie möchten, können Sie den Absatz, indem Sie einfach