2017-12-08 10 views
0

私は2つのjsファイルを持っています:1.jsと2.js.
1.js:JQueryを使用して別のファイルの1つのファイルのjs変数にアクセスします。

$(document).ready(function() { 
    var test = 'Hello'; 
}); 
1.jsで
は私が2.js

alert(test); 

サンプルコード内の変数にアクセスしようとしている

var test ='Hello'; 

変数を持っています

2.js:

$(function() { 
     function getData(){ 
      alert(test); 
     } 
    }); 

のjsファイルの私のaspxページのために:

<script type="text/javascript" src="js/1.js"></script>  
<script type="text/javascript" src="js/2.js?"></script> 

私は質問が何度も前に頼まれているが、答えのどれも私のために働くように思わない知っています。

+0

前にロードする必要がある。それを取得します'test'はjQueryのDOMReadyショートカットに渡された無名関数で定義されている関数にスコープされています。 –

答えて

1

var testが関数内になく、ファイルが正しい順序で読み込まれていることを確認してください。あなたの最初のファイルの使用では

<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"; 

そして

$(function() { 
    alert(test); 
    // alert(window.test); 
}); 

のようなあなたのJS file使用中のグローバルスコープ内の変数は、すべてのJavaScriptファイルからアクセスすることができようなもの。 あなたの最初のjsファイルは

ここでは別の方法です。

//first.js file don't put variable inside any function here. 
var globalVariable={ 
    test: 'myVar' 
}; 

そして、あなたの第二のjsファイル

//second.js file 
alert(globalVariable.test); 

とHTMLページでは

<script type="text/javascript" src="first.js"></script> 
<script type="text/javascript" src="second.js"></script> 

More from here

0

を追加あなたは、変数値

を保存するために sessionStorageを使用することができます次のファイルに
$(document).ready(function() { 
    sessionStorage.setItem('test ', 'Hello'); 
}); 

$(function() { 
     function getData(){ 
     var data = sessionStorage.getItem('test'); 
      alert(data); 
     } 
    }); 

注意を使用して、ファイル1.jsはJSがそのように動作しません2.js

+0

ストレージは文字列のみを格納することに注意することが重要です。ブール値と数値は検索時に型キャストする必要があり、配列/オブジェクトは文字列化して解析する必要があります – charlietfl

関連する問題