Javascript 职能范围及;输入/输出所述函数的变量
所以我在学习和尝试一些东西,问题是 我知道在函数外部定义的变量对所有函数都有用,而函数内部的一个变量集则不可用 当我这么做的时候 HTML:Javascript 职能范围及;输入/输出所述函数的变量,javascript,Javascript,所以我在学习和尝试一些东西,问题是 我知道在函数外部定义的变量对所有函数都有用,而函数内部的一个变量集则不可用 当我这么做的时候 HTML: <input type="text" name="field" id="field"/> <input type="submit" id="submit" name="submit"/> JS: var results = document.getElementById("field").value; var submitB
<input type="text" name="field" id="field"/>
<input type="submit" id="submit" name="submit"/>
JS:
var results = document.getElementById("field").value;
var submitBtn = document.getElementById("submit");
function pushit(){
aNames.push(results);
for(i=0; i<aNames.length; i++){
document.write(aNames[i] + "<br/>");
}
submitBtn.onclick = pushit;
}
var results=document.getElementById(“字段”).value;
var submitBtn=document.getElementById(“提交”);
函数pushit(){
aNames.push(结果);
对于(i=0;i第一个示例中的results
变量在页面加载时设置,并且从未更改。每次读取时,它的值都相同
在第二个示例中,您每次运行事件时都从输入中获取值;您正在创建一个新变量。因此,您看到了新的值
JavaScript DOM元素是“活动”变量,但字符串不是
例如:
var results = document.getElementById("field");
var submitBtn = document.getElementById("submit");
function pushit(){
alert(results.results);
}
这是因为results
是一个“活动”变量。当您访问它时,它始终是最新的DOM元素
当您执行var results=document.getElementById(“field”).value;
时,现在results
只是一个字符串;它不再是“活动的”了。很抱歉,这是一个混乱,我忘记了对编码部分进行“编码”,所以它将所有内容都放在一起。。现在更好,请定义“不工作”.如前所述,没有明显的原因说明为什么第一版中的结果的重复定义会阻止发布的代码工作。@Alnitak看到了整个编辑历史,混淆了那里发生的事情。啊,这就解释了-你发布的原始代码不是正确的代码!@GGG是的,注意到-我以为Rocket制作了编辑,而不是OP。所以你的意思是,当读取代码时,“result”的值是空的(或者默认值)因此,它的状态不会改变……当按下按钮时,它会再次被检查……明白了!我以为它会一直持续下去,但……在btn按下时,它只检查函数内部的内容!谢谢你清理它。@somdow:很高兴我能帮上忙:)
var results = document.getElementById("field");
var submitBtn = document.getElementById("submit");
function pushit(){
alert(results.results);
}