<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script>       
     function fun() {
         alert($(this).length); // 1
         alert($(this).val()); // 未定义
        }
    </script>
</head>
<body>
   <input id="Button1" type="button" value="test" onclick="fun()"/>
</body>
</html>

解决方案 »

  1.   

    这里的this指的是IE的window对象,这是因为fun只是一个普通的函数。$(this) 就是 window对象的jq包装集
      

  2.   

    一楼说的这种应该是函数不用于事件中的情况下,当i在<input>的点击事件中使用fun()的时候,$(this)是一个事件句柄,通过它可以得知触发这个事件的element元素的属性...!!
      

  3.   

    <input id="Button1" type="button" value="test" onclick="fun()"/>
    这里调用fun方法之后,这个this对象就代表触发这个click事件的dom元素。
      

  4.   

    #1正解fun() 改成 fun.call(this)绑定当前element就对了<input id="Button1" type="button" value="test" onclick="fun.call(this)"/>不过既然使用jquery,就应该用addEventListener/attachEvent 那套来绑定事件(function($){
        $('#Button1').click(function(e){    })
    })(jQuery)
      

  5.   

    $(this) 在事件中是指触发事件的元素的 JQuery 对象... 
      

  6.   

    this是window,5楼说的fun.call(this),this在fun()中才是button对象。
      

  7.   

    楼上都说清楚了,不过既然用JQuery,事件最好还是$(function(){
    $("#Button1").click(function(){    })
    })这样写比较好
      

  8.   

    (function(){
    $("#Button1").click(function(){    })
    })
      

  9.   

    $(this),代表的上下文对象是一个jquery的上下文对象,可以调用jquery的方法和属性值。 
      

  10.   

    当前操作对象,这里就是指$("#Button1")
      

  11.   

    this是引发动作的对象,因为onclick是在#Button1上,所以this就是#Botton1这个DOM对象,而$(this)只是将DOM element包装成jQuery对象,DOM element只能用原生js方法,jQuery对象只能用jQuery方法
      

  12.   

    $(this),代表的上下文对象是一个jquery的上下文对象,可以调用jquery的方法和属性值。 
      

  13.   

    楼主是不是想问 为什么
    alert($(this).length); // 1
    alert($(this).val()); // 未定义
    $() 是jquery的对象构造器,这里$(this)构造了一个jq对象,其length为1alert($(this).val()); // 未定义    我也疑惑,为什么没取得 value="test"  test值
      

  14.   

    ....
    看来很多同学有必要复习下javascript里this的含义。
    去掉jQuery调用,fun定义改成
    <script>
    function fun(){
          alert(this)
    }
    </script>
    <input id="Button1" type="button" value="test" onclick="fun()"/>
    这时候this是什么?
      

  15.   


    是window哦,明白了,之所以上面
    $(this).val() 为undefined。
      

  16.   

    哈哈,脱了jQuery这层马甲,哥马上就认出你来了。
      

  17.   

    function Person(){
        this.name="csdn";
    }var obj = Person(); //this 绑定在window上
    var obj = new Person(); //this 绑定在当前对象onclick="Person()"  // 与var obj = Person()一样
      

  18.   

    this就是当前对象...document
      在不同的情况下,$(this)表示不同的东西,也就是jquery包装集
      

  19.   

    this是window对象只能使用window对象的属性和方法
    $(this)是jquery对象能使用jquery封装好的属性和方法