我有一个我想要保存的变量,以便多个函数可以使用它。我按照w3schools的指示,但它没有工作。我忘记了什么吗?提前谢谢。
var name = document.getElementById('name').value;
function complete() {
document.getElementById('demo').innerHTML = name;
}

答案 0 :(得分:3)
有几件事需要考虑:
body
标记之前。 value
将毫无意义。您需要设置代码,以便在适当的时间(在用户有机会输入表单字段之后)调用您的函数,因此只有在该时刻到来时才能获取该值。name
,因为全球window
object有一个名为name
的属性,默认为空字符串
当您尝试访问name
时,它可能会错误地尝试
获取window.name
而不是名为name
的元素。.textContent
(当字符串不包含任何HTML或您时使用
想要显示实际的HTML代码,而不是解析)和
.innerHTML
(当字符串包含HTML并且您想要时使用
该代码已解析)。最后,帮自己一个忙,不要使用W3Schools。众所周知,它已经过时或没有错误的信息。而是使用 Mozilla Developer's Network ,它被认为是客户端Web开发文档的最佳资源之一。
<input type="text" id="userName">
<input type="button" value="Click Me!" id="btn">
<div id="demo"></div>
<script>
// Set up the button's click event handling function
document.getElementById("btn").addEventListener("click", complete);
// Only get a reference to the element, not its value because, at this point,
// the user hasn't had a chance to type anything into it.
// Also, getting a reference to the element is the best approach because, if
// you decide you want some other property of the same element later, you'd have
// to scan the document for the same element again.
var theName = document.getElementById('userName');
function complete() {
// Now, just get the current value of the textbox at this moment in time
document.getElementById('demo').textContent = theName.value;
}
</script>
&#13;