2016-05-13 31 views
1

以下代码将以FirstName姓氏写入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

https://jsfiddle.net/mohamedyousef1980/m78r173j/ –

+0

无法复制it.See这个演示 https://jsfiddle.net/vasi_32/mvwr4cq6/ – brk

回答

2

底部代码不起作用,因为您在脚本执行时获取了值,而不是单击该按钮时的值。

您可以继续在全局声明变量,但将赋值移至事件侦听器,但通常减少全局变量的数目是有益的。如果你让我们知道你打算如何使用这些值,我们可能会提出一个更好的方法。

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); 

}); 
相关问题