Javascript-从函数调用变量
我有这个单选按钮,如果选中,我希望它显示两个警报(item=“shoes”),一个来自本地,另一个来自全局,警报只显示一个表示变量在全局上仍然为空Javascript-从函数调用变量,javascript,jquery,Javascript,Jquery,我有这个单选按钮,如果选中,我希望它显示两个警报(item=“shoes”),一个来自本地,另一个来自全局,警报只显示一个表示变量在全局上仍然为空 /*空项*/ var项目=“”; /*功能选择项*/ 功能选择(选择){ var项目=选择; 警报(项目); } /*如果选择了单选按钮,则显示项目='shoes'*/ $('input[name=“selection”]”)。单击(函数(){ 如果($(this).is(':checked')){ 选择(“鞋”); } }); /*如果项目不为空
/*空项*/
var项目=“”;
/*功能选择项*/
功能选择(选择){
var项目=选择;
警报(项目);
}
/*如果选择了单选按钮,则显示项目='shoes'*/
$('input[name=“selection”]”)。单击(函数(){
如果($(this).is(':checked')){
选择(“鞋”);
}
});
/*如果项目不为空,则发出警报*/
如果(项目!=''){
警报(项目);/*不工作*/
}
Shoes
您已经声明了两次变量
var item= '';
还有你的功能。所以把你的函数改为
function selection(select) {
item = select;
alert(item);
if (item !== '') {
alert(item); /*NOT WORKING*/
}
}
第二个问题是,在单击事件之后,警报将永远不会到达。所以把它移到函数中
这里是小提琴:您已经声明了两次变量
var item= '';
还有你的功能。所以把你的函数改为
function selection(select) {
item = select;
alert(item);
if (item !== '') {
alert(item); /*NOT WORKING*/
}
}
第二个问题是,在单击事件之后,警报将永远不会到达。所以把它移到函数中
这里是提琴:您应该在单击处理程序函数中有警报。另外,不要在函数内重新声明变量
项
,这将创建一个作用域为函数的全新变量:
/*空项*/
var项目=“”;
/*功能选择项*/
功能选择(选择){
项目=选择;
警报(项目);
}
/*如果选择了单选按钮,则显示项目='shoes'*/
$('input[name=“selection”]”)。单击(函数(){
如果($(this).is(':checked'){
选择(“鞋”);
}
/*如果项目不为空,则发出警报*/
如果(项目!=''){
警报(项目);/*不工作*/
}
});代码>
Shoes
您应该在click handler函数中具有警报。另外,不要在函数内重新声明变量项
,这将创建一个作用域为函数的全新变量:
/*空项*/
var项目=“”;
/*功能选择项*/
功能选择(选择){
项目=选择;
警报(项目);
}
/*如果选择了单选按钮,则显示项目='shoes'*/
$('input[name=“selection”]”)。单击(函数(){
如果($(this).is(':checked'){
选择(“鞋”);
}
/*如果项目不为空,则发出警报*/
如果(项目!=''){
警报(项目);/*不工作*/
}
});代码>
鞋子
虽然这将解决你的问题,但我敦促你考虑一下一种不涉及全局状态的方法。
有两个问题。首先,您在函数中重新声明了项
变量,因此您有一个更改的本地副本,而不是全局副本。第二,您没有在更改侦听器中检查是否为空,而只是在启动时检查
更好的缩进可能会把这一点说清楚
/*空项*/
var项目=“”;
/*功能选择项*/
功能选择(选择){
项目=选择;
警报(项目);
}
/*如果选择了单选按钮,则显示项目='shoes'*/
$('input[name=“selection”]”)。单击(函数(){
如果($(this).is(':checked')){
选择(“鞋”);
}
/*如果项目不为空,则发出警报*/
如果(项目!=''){
提醒(项目);/*现在工作,因为它在正确的位置*/
}
});代码>
鞋子
虽然这将解决你的问题,但我敦促你考虑一下一种不涉及全局状态的方法。
有两个问题。首先,您在函数中重新声明了项
变量,因此您有一个更改的本地副本,而不是全局副本。第二,您没有在更改侦听器中检查是否为空,而只是在启动时检查
更好的缩进可能会把这一点说清楚
/*空项*/
var项目=“”;
/*功能选择项*/
功能选择(选择){
项目=选择;
警报(项目);
}
/*如果选择了单选按钮,则显示项目='shoes'*/
$('input[name=“selection”]”)。单击(函数(){
如果($(this).is(':checked')){
选择(“鞋”);
}
/*如果项目不为空,则发出警报*/
如果(项目!=''){
提醒(项目);/*现在工作,因为它在正确的位置*/
}
});代码>
如果要“将变量从局部范围转移到全局范围”,请使用return
var项=”;
功能选择(选择){
var项目=选择;
警报(项目);
return item;//如果要“将变量从局部范围转移到全局范围”,请使用return
var项=”;
功能选择(选择){
var项目=选择;
警报(项目);
return item;//首先,javascript是在页面加载时运行的。因此,您在item变量中设置了var item='';
empty值,并在下面进行了检查
if (item != '') {
alert(item); /*NOT WORKING*/
}
此代码。在加载页面上,将执行所有脚本,包括下面的代码
if (item != '') {
alert(item); /*NOT WORKING*/
}
因此,检查单选按钮后,上述代码未运行
但是,我们可以像下面这样做,请接受
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<input type="radio" name="selection" id="shoes" value="shoes">Shoes<br>
<script type="text/javascript">
/*Empty item*/
var item = '';
/*Function selection item*/
function selection(select) {
item = select;
alert(item);
sample();
}
function sample() {
alert(item);
}
/*If radio button selected item='shoes'*/
$('input[name="selection"]').click(function() {
if ($(this).is(':checked')) {
selection('shoes');
}
});
</script>
鞋子
/*空项*/
var项目=“”;
/*功能选择项*/
功能选择(选择){
项目=选择;
警报(项目);
样本();
}
函数示例(){
警报(项目);
}
/*如果选择了单选按钮,则显示项目='shoes'*/
$('input[name=“selection”]”)。单击(函数(){
如果($(this).is(':checked')){
选择(“鞋”);
}
});
首先,javascript是在页面加载时运行的。因此,您在item变量中设置了var item='';
空值,并在下面进行了检查
if (item != '') {
alert(item); /*NOT WORKING*/
}
此代码。在加载页面上,将执行所有脚本,包括下面的代码
if (item != '') {
alert(item); /*NOT WORKING*/
}
因此,检查单选按钮后,上述代码未运行
但是,我们可以像下面这样做,请接受
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<input type="radio" name="selection" id="shoes" value="shoes">Shoes<br>
<script type="text/javascript">
/*Empty item*/
var item = '';
/*Function selection item*/
function selection(select) {
item = select;
alert(item);
sample();
}
function sample() {
alert(item);
}
/*If radio button selected item='shoes'*/
$('input[name="selection"]').click(function() {
if ($(this).is(':checked')) {
selection('shoes');
}
});
</script>
鞋子
/*空项*/
var项目=“”;
/*功能选择项*/
功能选择