jQuery中this與$(this)的區別

jQuery中this與$(this)的區別



起初覺得this和$(this)就是一模子刻出來。可是我在閱讀時,和coding時發現,總不是一回事,這裏就談談this與$(this)的區別。

AD:

jQuery中this與$(this)的區別

    $("#textbox").hover(   
          function() {   
               this.title = "Test";   
          },   
          fucntion() {   
              this.title = "OK」;   
          }   
    ); 

這裏的this實際上是一個Html 元素(textbox),textbox有text屬性,因此這樣寫是徹底沒有什麼問題的。
可是若是將this換成$(this)就不是那回事了,Error--報了。this與$(this)的區別在此。

    Error Code:   
    $("#textbox").hover(   
           function() {   
              $(this).title = "Test";   
           },   
           function() {   
              $(this).title = "OK";   
           }   
    ); 

這裏的$(this)是一個JQuery對象,而jQuery對象沒有title 屬性,所以這樣寫是錯誤的。

JQuery擁有attr()方法能夠get/set DOM對象的屬性,因此正確的寫法應該是這樣:

正確的代碼:

    $("#textbox").hover(   
          function() {   
             $(this).attr(’title’, ‘Test’);   
          },   
          function() {   
             $(this).attr(’title’, ‘OK’);   
          }   
    ); 

使用jQuery的好處是它包裝了各類瀏覽器版本對DOM對象的操做,所以統一使用$(this)而再也不用this應該是比較不錯的選擇。

jQuery中this與$(this)的區別就介紹到這裏
相關文章
相關標籤/搜索