2012-07-28 171 views
-1

下面的代码片段没有让我看到我的控制台中显示的全局变量ID的值。我哪里错了?Javascript全局变量问题

var id; 

function set_id(myid){ 
id=myid; 
} 

function get_id(){ 
return id; 
} 

$("#btn").click(function(){ 
$.post("....", function(data){ //data reurns a JSON 
    set_id(id); //success!! 
} 
} 

$("#show").click(function()[ 
console.log(get_id()); //doesn't work, how do I get this workin.. Where am I going wrong 
} 
+0

它必须在控制台上打印某些内容。什么? – MaxArt 2012-07-28 10:43:36

+0

您是否试图在get_id()中返回全局变量ID?尝试在$(“#show”)中使用console.log(id)。点击() – 2012-07-28 10:44:00

+1

Works http://jsfiddle.net/Kirrr/vMBkZ/ – Kir 2012-07-28 10:45:44

回答

1

此代码看起来可疑对我说:

$("#show").click(function()[ 
    console.log(get_id()); //doesn't work, how do I get this workin.. Where am I going wrong 
} 

也许你的意思是这样的:

$("#show").click(function(){ 
    console.log(get_id()); 
}); 
+0

如果他的工作脚本中的错误是这样的,第一个按钮不会工作太 – Kir 2012-07-28 10:51:35

+0

是的,我看到第一个jQuery使用也没有正确结束。但是这有一个方括号,而不是一个卷曲的。我认为这是一个更大的问题。 – HeM01 2012-07-28 10:54:23

3

为什么你会使用全局变量和getter/setter方法?你可以在任何地方设置它,因为它GLOBAL:

id = x; 

,并得到它的任何地方:

x = id; 

所以,你的代码是:

$("#btn").click(function() { 
    $.post("....", function(data) { 
     id = data.id; 
    }); 
}); 

$("#show").click(function() { 
    console.log(id); 
}); 
+0

Thx用于更正语法:)我刚刚复制了作者的代码。 – 2012-07-28 11:07:19

0

你的语法是错误的。 [只是在console.log之前

+0

在'click'后面它的语法也不够''' – Kir 2012-07-28 11:18:37