自定义变量为何不能全局调用?
<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>