这有效:
$(document).ready(function(){
$("#inputbuttonid").on("click", function(){
var inputtext = $("#inputtextid").val();
alert(inputtext);
});
});
但这不起作用:
$(document).ready(function(){
var inputtext = $("#inputtextid").val();
$("#inputbuttonid").on("click", function(){
alert(inputtext);
});
});
“工作”是指它提醒正确的信息。
以上两种情况的唯一区别在于,在第二种情况下,我把
var inputtext = $("#inputtextid").val();
在外部函数中,而在第一个函数中,我把它放在内部函数中。
根据JQuery手册,“本地范围通过函数工作”,意思是“在另一个函数中定义的任何函数都可以访问外部函数中定义的变量”(引用自JQuery手册)。
那么,为什么在上面的第二种情况下,内部函数是否无法访问“inputtext”?
答案 0 :(得分:5)
那么,为什么在上面的第二种情况下,内部函数是否无法访问" inputtext"?
它确实有访问 1 ,但您正在执行之前用户输入值的语句。当DOM准备就绪时,立即读取该值,而不是在用户单击按钮时读取。
上述两种情况的唯一区别在于,在第二种情况下,我将[...]放在外部函数中,而在第一种情况下,我把它放在内部函数中。
此更改的结果是该语句现在在不同的时间执行,输入字段尚未具有值。
1:如果没有,你会收到参考错误。
答案 1 :(得分:0)
在第二个示例中,您的变量在文档加载时初始化,并且click函数中没有代码来获取新值。这可行:
$(document).ready(function(){
var inputtext = $("#inputtextid").val();
$("#inputbuttonid").on("click", function(){
inputtext = $("#inputtextid").val();
alert(inputtext);
});
});