日期:2014-05-16 浏览次数:20490 次
<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延迟内容调用吧。
<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>