Reputation: 2378
I have 2 js files: 1.js and 2.js.
In 1.js I have a variable
var test ='Hello';
I'm trying to access the variable in 2.js
alert(test);
Sample Code:
1.js :
$(document).ready(function () {
var test = 'Hello';
});
2.js :
$(function () {
function getData(){
alert(test);
}
});
In my aspx page order of js files:
<script type="text/javascript" src="js/1.js"></script>
<script type="text/javascript" src="js/2.js?"></script>
I know the question is asked before many times but none of the answers seems to work for me.
Upvotes: 1
Views: 5811
Reputation: 3581
Make sure your var test
is not inside a function and that your file is load in the correct order.
In your first file use something like
<script type="text/javascript">
var test = "myVar"
</script>
// Now here include your js file too JS file
// Or set in window scope like window.test="myVar";
And in your JS file
use like
$(function() {
alert(test);
// alert(window.test);
});
A variable in global scope can be access from all javascript file. Your first js file
Here is another way.
//first.js file don't put variable inside any function here.
var globalVariable={
test: 'myVar'
};
And your second js file
//second.js file
alert(globalVariable.test);
And in html page add
<script type="text/javascript" src="first.js"></script>
<script type="text/javascript" src="second.js"></script>
Upvotes: 1
Reputation: 50291
You can use sessionStorage to store the variable value
$(document).ready(function () {
sessionStorage.setItem('test ', 'Hello');
});
In the next file retrieve it using
$(function () {
function getData(){
var data = sessionStorage.getItem('test');
alert(data );
}
});
Note the file 1.js need to be loaded before 2.js
Upvotes: 0