javascript-全局变量不工作

javascript-全局变量不工作,javascript,variables,Javascript,Variables,我有一个要保存的变量,以便多个函数可以使用它。我按照学校的指示做了,但没用。我忘了什么吗?先谢谢你 var name=document.getElementById('name').value; 函数完成(){ document.getElementById('demo').innerHTML=name; }有几件事需要考虑: 如果您有试图查找元素的代码,但浏览器尚未读取该元素,则浏览器将无法找到该元素。因此,请确保代码仅在加载完整DOM后运行 通过将脚本放置在结束正文标记之前 不要试图在页

我有一个要保存的变量,以便多个函数可以使用它。我按照学校的指示做了,但没用。我忘了什么吗?先谢谢你

var name=document.getElementById('name').value;
函数完成(){
document.getElementById('demo').innerHTML=name;

}
有几件事需要考虑:

  • 如果您有试图查找元素的代码,但浏览器尚未读取该元素,则浏览器将无法找到该元素。因此,请确保代码仅在加载完整DOM后运行 通过将脚本放置在结束
    正文
    标记之前
  • 不要试图在页面一打开就获取表单字段的值 加载,因为用户尚未在其中键入任何内容,所以
    将为空。您需要设置代码,以便在正确的时间(在用户有机会键入表单字段后)调用您的函数,因此只有在该时间到来时才能获取值
  • 不要给任何元素命名
    名称
    ,因为全局
    窗口
    对象有一个名为
    name
    的属性,该属性默认为空字符串 当您试图访问
    name
    时,它可能会错误地尝试 获取
    窗口.name
    而不是名为
    name
    的元素
  • 只有表单字段具有值属性。所有其他元素都有
    .textContent
    (当字符串不包含任何HTML或 希望显示实际的HTML代码,而不是解析代码)和
    .innerHTML
    (当字符串确实包含HTML并且您需要 该代码已被解析)
最后,帮你自己一个忙,不要使用W3。众所周知,上面有过时或完全错误的信息。相反,请使用,这是公认的客户端web开发文档的最佳资源之一


//设置按钮的单击事件处理功能
document.getElementById(“btn”).addEventListener(“单击”,完成);
//只获取对元素的引用,而不获取其值,因为此时,
//用户没有机会在其中键入任何内容。
//另外,获取对元素的引用是最好的方法,因为
//如果您决定以后需要相同元素的其他属性,则
//再次扫描文档中的相同元素。
var theName=document.getElementById('userName');
函数完成(){
//现在,只需及时获取文本框的当前值
document.getElementById('demo').textContent=theName.value;
}