首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

自定义变量为何不能全局调用?该怎么处理

2012-03-12 
自定义变量为何不能全局调用?htmlheadscript srchttp://ajax.googleapis.com/ajax/libs/jquery/1.4

自定义变量为何不能全局调用?
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<title>无标题文档</title>
<script> 
var t;
$(function(){
t=$(".list").text();
 
})

alert(t);
</script>
</head>
<body>
<div class="list"> xxxxxxxxxxxxxx </div>
</body>
</html>

[解决办法]
alert(t);放的位置有问题,这时的t还未定义,当然提示undefined

[解决办法]
跟全局什么的没关系,t没有赋值而已
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<title>无标题文档</title>
<script>
var t;
$(function(){
t=$(".list").text();//这句在事件中,要页面加载完成后执行,
})

alert(t);//这句会在页面加载完成前执行
 
你可以自己打断点或用alert确认

[解决办法]
在HEAD中的代码执行的时候, BODY的内容还没有执行, 所以取不到值
[解决办法]

HTML code
<html><head><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script><meta http-equiv="Conent-Type" Content="text/html" charset="utf8"><title>无标题文档</title></head><body><script type="text/javascript">  var t;$(function() {t = $(".list").text();  });$(document).ready(function() {    alert(t);});</script><div class="list"> xxxxxxxxxxxxxx </div></body></html>
[解决办法]
alert在t赋值前就执行了。
这纯粹是逻辑的问题了,只能自己去理解。
[解决办法]
怎么说了你还是不明白呢,很简单的先后顺序
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<title>无标题文档</title>
<script>
var t;
$(function(){///这个在加载完执行没有错
t=$(".list").text();//这个能取到值也没有错
})

alert(t);//但是这个是在加载完成前执行,这时候还没有执行上面那个函数,也就是说t没有被赋值,不是代码写在后面就后执行的</script>
</head>
<body>
<div class="list"> xxxxxxxxxxxxxx </div>
</body>
唉 这么简单的问题感觉解释起来好恼火,楼主请理解一下代码的执行顺序
[解决办法]
js 执行顺序问题
[解决办法]
2楼说的比较容易理解
[解决办法]
<head>元素内的JS文件在都被下载、解析和执行完成以后才能开始呈现页面。
要通过window.onload延迟内容调用吧。
JScript code
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script><title>无标题文档</title><script>      window.onload = function(){        var t;        $(function(){        t=$(".list").text();                  })                alert(t);    }</script></head><body>    <div class="list"> xxxxxxxxxxxxxx </div></body></html> 

热点排行