问题
I have two external Javascript files. I declared a variable in one file and I am trying to access the variable from other. When I try to access it, it returns undefined
.
<script src="script1.js"></script>
<script src="script2.js"></script>
script1:
$(function(){
var myvar=35;
});
script2:
$(function(){
alert(myvar); //this line causing error undefined.
});
回答1:
Your variable isn't global. You've declared it inside a function so it is local to that function. You need to move the var
statement outside your document ready function:
var myvar=35;
$(function(){
// other document ready stuff here, including
// using or assigning a value to myvar if needed
});
Then it will be globally scoped and can be accessed from other script files (as long as they're included after the one where it's declared).
If you don't know the value to assign until the document ready then do this:
var myvar; // declare variable
$(function(){
myvar = 35; // assign value
});
Since you don't try to use the value until the other script's document ready handler runs this would be fine.
回答2:
Script1.js
var i=10;
Script2.js
function call(){
alert(i);
}
Sample.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script type="text/javascript" charset="utf-8" src="Script1.js" ></script>
<script type="text/javascript" charset="utf-8" src="Script2.js" ></script>
<script>
</script>
<BODY onload='call();'>
</BODY>
</HTML>
Hope this helps you
回答3:
Adding to the answers, your code would work if you dropped the 'var' keyword in the first javascript file . . . .
Dropping 'var' assigns the value to the global variable, and if one doesn't exist, a global variable would be created . . .so, it will be same as a global myvar
<script src="script1.js"></script>
<script src="script2.js"></script>
script1:
$(function(){
myvar=35;
});
script2:
$(function(){
alert(myvar); //this will work
});
来源:https://stackoverflow.com/questions/12048863/unable-to-access-variable