CrazyCoder
CrazyCoder

Reputation: 2378

Access js variable of one file in another file using JQuery

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

Answers (2)

Manikant Gautam
Manikant Gautam

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> 

More from here

Upvotes: 1

brk
brk

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

Related Questions