日期:2014-05-16 浏览次数:20377 次
<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>