下面的代码将写入FirstName LastName是X岁。但是,如果我想在按钮单击中拉出jquery变量val()变量并使它们成为全局变量,则它不起作用。我不知道为什么。
function Household (firstName, lastName, age){
var _list = {
"_fname": firstName,
"_lname": lastName,
"_age": age
};
this.addPerson = function () {
var writeIn = _list._fname + " " + _list._lname + " is " + _list._age + " years old.";
return writeIn;
}
}
$('#btnSub').click(function(){
var _getFName = $('#enterFName').val();
var _getLName = $('#enterLName').val();
var _getAge = $('#enterAge').val();
var nuHouse = new Household (_getFName, _getLName, _getAge);
var newNuHouse = nuHouse.addPerson();
$('#insertAnswer').html(newNuHouse);
});
为什么这不起作用?我希望将值设置为全局值,以便通过其他按钮点击来访问它们。
function Household (firstName, lastName, age){
var _list = {
"_fname": firstName,
"_lname": lastName,
"_age": age
};
this.addPerson = function () {
var writeIn = _list._fname + " " + _list._lname + " is " + _list._age + " years old.";
return writeIn;
}
}
var _getFName = $('#enterFName').val();
var _getLName = $('#enterLName').val();
var _getAge = $('#enterAge').val();
var nuHouse = new Household (_getFName, _getLName, _getAge);
$('#btnSub').click(function(){
var newNuHouse = nuHouse.addPerson();
$('#insertAnswer').html(newNuHouse);
});
提前谢谢!
答案 0 :(得分:2)
底部代码不起作用,因为您在脚本执行时获取值,而不是在单击按钮时获取值。
您可以继续全局声明变量,但将赋值移动到事件侦听器,但减少全局变量的数量通常是有益的。如果您告诉我们您打算如何使用这些值,我们可能会建议更好的方法。
答案 1 :(得分:0)
您需要在事件点击时更新这些变量的值。 因为在第一次页面加载时,这些输入没有任何价值。
var _getFName;
var _getLName;
var _getAge;
var nuHouse;
$('#btnSub').click(function(){
_getFName = $('#enterFName').val();
_getLName = $('#enterLName').val();
_getAge = $('#enterAge').val();
nuHouse = new Household (_getFName, _getLName, _getAge);
var newNuHouse = nuHouse.addPerson();
$('#insertAnswer').html(newNuHouse);
});