どこで関数を呼び出しているのかわかりませんが、変数をページに対してグローバルにしdostuff()
たい場合は、考慮する必要があることが 1 つあります。test
次に、このように宣言する必要があります。
//this one is preferd
test = 4;
また
window.test = 4;
これは機能するはずです。呼び出していることを確認してくださいdostuff()
。
編集:関数呼び出しの問題を解決する
したがって、ここに問題の概要を含む完全なソリューションがあります。
問題: (これは DOM のロード後に呼び出されました)doStuff()
イベントを呼び出しており、DOMのロード時に変数の値を出力しています。document.ready()
DOM で値を出力する前に呼び出されることはないため、古い値が表示されます。doStuff()
解決策:目的の出力を得るには 2 つの方法があります。
doStuff()
前に電話するロードを開始します(宣言の直後)。
- 計算を行い、結果に応じて値を Print に返す関数を作成します。
解決策 1:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script>
//Should be before Body tag
test = 4;
//Declaring function
function doStuff()
{
test = 8;
}
//Calling right after declarion
doStuff();
</script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
/*Here value is updated and ready to print any any where in the DOM*/
<h1><script type="text/javascript">
document.write(test);</script></h1>
</body>
</html>
ソリューション 1へのライブ URL
解決策 2:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script>
/*Should be before Body tag*/
test = 4;
function doStuff()
{
/*Changing value and returing it.*/
test = 8;
return test;
}
</script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<h1><script type="text/javascript">
/*Calling function and printing returned value*/
document.write(doStuff());</script></h1>
</body>
</html>
ソリューション 2へのライブ URL
これが役立つことを願って、他に何かあれば教えてください。