解决方案 »

  1.   

    $(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>
      

  2.   

    在元素还没加载进来的时候你获取的#text1为空  所以无效         $(document).ready(function () {
                p = $("#text1");
                p.click(function () {
                   $(this).hide();
                });
            });
            var text = " AA";
    这样试试
      

  3.   

    js代码放 所有html 代码后面
    或者写到 ready 方法中
      

  4.   

    你这肯定是放在head里的吧?$(document).ready(....要执行的代码......)
    这个ready的意思就是等文档加载完全(所有的p div a span啥的页面上的元素都加载完毕了),然后才会执行“要执行的代码”。
    你把“p = $("#text1");”放在ready外面  这时候文档还没有加载(p  div  a啥的还都在js代码下面没有加载)更不要提什么加载完毕了,所以取不到#text1  也就没法执行。