Sie keinen String „ohne Anführungszeichen passieren kann "In einem JS-Programm ist Text, der nicht von Anführungszeichen umgeben ist, kein string, es ist ein expression.
Ihr Code funktioniert aus mehreren Gründen nicht so, wie Sie denken. Erstens, Sie tun nichts mit dem data
Parameter, der übergeben wird. .data
ist eine Eigenschaft des DOM-Elements, das Sie mit getElementById
abgerufen haben. data
ist der Literalname der Eigenschaft, auf die Sie zugreifen, es handelt sich nicht um einen Verweis auf den Wert des Parameters data
. Um eine Eigenschaft mit dem Namen zuzugreifen, die Sie als data
Variable übergeben Sie müssen bracket notation instead of dot notation verwenden, darauf zuzugreifen:
function random(data) {
document.getElementById("demo")[data] = "Paragraph changed!";
}
random("textContent");
Sie werde ich den Namen der Funktion Random
-random
bemerken geändert. Dies liegt daran, dass es sich um einen convention in JS to only use capitalized names für constructor functions handelt.
Der andere Grund, warum es nicht funktioniert, ist wegen Ihres Versuchs, eine "Zeichenfolge" ohne Anführungszeichen zu verwenden. Wenn eine JavaScript-Engine random(textContent);
sieht, interpretiert sie das als Aufruf random
, wobei der Wert einer Variablen mit dem Namen textContent
als erster Parameter übergeben wird. Da Sie keine Variable mit dem Namen textContent
definiert haben, ist der übergebene Wert undefined
. Wenn Sie es zitieren, wird es in ein String-Literal umgewandelt, wodurch die gewünschte Zeichenfolge übergeben wird.
Was meinst du damit, wenn du sagst es "funktioniert nicht?" Was hast du erwartet und was ist eigentlich passiert? – smarx
versuchen Sie dies: 'document.getElementById (" demo "). InnerHTML =" Absatz geändert! ";' – demo
Meine Frage war allgemein, ich wollte wissen, wie man auf ein Attribut eines Objekts mit einer String-Variablen zugreifen kann Jungs antworteten mir unten. Also Prost Kumpel! – Drazxier