我不确定您在哪里调用函数,但是如果您希望变量对于页面是全局的dostuff()
,则需要考虑一件事。test
然后你应该像这样声明它。
//this one is preferd
test = 4;
或者
window.test = 4;
这应该有效,请确保您正在调用dostuff()
.
编辑:解决函数调用问题
所以这里是完整的解决方案,概述了您的问题。
问题:您正在调用doStuff()
(document.ready()
加载 DOM 后调用)事件,并且在 DOM 加载时打印变量的值。
它显示旧值,因为doStuff()
在您在 DOM 中打印值之前从未被调用过。
解决方案:有两种方法可以实现所需的输出。
- 打电话
doStuff()
之前开始加载(在其声明之后)。
- 创建一个函数,该函数进行计算并相应地返回要打印的值。
解决方案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
希望这会有所帮助,让我知道是否还有其他东西,如果没有,请接受作为答案!