$(document).ready 故名思义就是等document准备好的时候,你这是放到外边去了,就是没等准备好,就去获取text这个对象,尤其是代码放在头部的时候就会出错。 建议放在里边,如果非要放在外面,就放在页面的最低部。<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>test</title> <script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.10.2/jquery-1.10.2.min.js"></script> </head> <body> <input id="text1" type="button" value="test"/> <script type="text/javascript"> /* $(document).ready(function () { p = $("#text1"); p.click(function () { $(this).hide(); }); }); var text = " AA"; */ p = $("#text1"); $(document).ready(function () { p.click(function () { $(this).hide(); }); }); var text = " AA";</script> </body> </html>
在元素还没加载进来的时候你获取的#text1为空 所以无效 $(document).ready(function () { p = $("#text1"); p.click(function () { $(this).hide(); }); }); var text = " AA"; 这样试试
js代码放 所有html 代码后面 或者写到 ready 方法中
你这肯定是放在head里的吧?$(document).ready(....要执行的代码......) 这个ready的意思就是等文档加载完全(所有的p div a span啥的页面上的元素都加载完毕了),然后才会执行“要执行的代码”。 你把“p = $("#text1");”放在ready外面 这时候文档还没有加载(p div a啥的还都在js代码下面没有加载)更不要提什么加载完毕了,所以取不到#text1 也就没法执行。
故名思义就是等document准备好的时候,你这是放到外边去了,就是没等准备好,就去获取text这个对象,尤其是代码放在头部的时候就会出错。
建议放在里边,如果非要放在外面,就放在页面的最低部。<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>test</title>
<script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.10.2/jquery-1.10.2.min.js"></script>
</head>
<body>
<input id="text1" type="button" value="test"/>
<script type="text/javascript">
/*
$(document).ready(function () {
p = $("#text1");
p.click(function () {
$(this).hide();
});
});
var text = " AA";
*/
p = $("#text1");
$(document).ready(function () { p.click(function () {
$(this).hide();
});
});
var text = " AA";</script>
</body>
</html>
p = $("#text1");
p.click(function () {
$(this).hide();
});
});
var text = " AA";
这样试试
或者写到 ready 方法中
这个ready的意思就是等文档加载完全(所有的p div a span啥的页面上的元素都加载完毕了),然后才会执行“要执行的代码”。
你把“p = $("#text1");”放在ready外面 这时候文档还没有加载(p div a啥的还都在js代码下面没有加载)更不要提什么加载完毕了,所以取不到#text1 也就没法执行。