jquery裡面的$(this)和this都什麼時候用,有什麼區別
當你用的是jquery時,就用$(this),如果是JS,就用this
$(this).html( $(this).html() + " BAM! " + i );
這個裡的html()是JQUERY方法,用$(this).html(),當然,JS裡也有相似方法innerHTML,如果用innerHTML,就要這樣寫了:
this.innerHTML();
this.reset();
這裡的reset是JS方法,所以同上得用this.reset();
jquery物件$(this)[0]等同於JS裡的元素this,這裡的this是一樣的,相信你應該看出來了,JS裡的元素只要包上$()就是jquery物件了,而jquery的物件只要加上[0]或者.get(0),就是js元素了。
$(this)是jquery物件,this就是簡單指當前元素。jquery物件不能直接指定元素的屬性(ele.style),需要get(index)或者直接(index)取得物件中元素才行
JQuery中的 $() 這個符號,實際上這個符號在JQuery中相當於JQuery(),即$(this)=jquery(this);也就是說,這樣可以返回一個jquery物件。那麼,當你在網頁中alert($('#id'));時,會彈出一個[object Object ],這個object物件,也就是jquery物件了。
那麼,我們再回過頭來說$(this),這個this是什麼呢?假設我們有如下的程式碼:
$("#desktop a img").each(function(index){
alert($(this));
alert(this);
}
那麼,這時候可以看出來:
alert($(this)); 彈出的結果是[object Object ]
alert(this); 彈出來的是[object HTMLImageElement]
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應該是比較不錯的選擇。
轉自:http://www.cnblogs.com/diantao/p/4514238.html
這部落格我真的要報警惹,為什麼字元會直接轉成程式碼啊
相關文章
- Token和cookie有什麼區別?網路安全工程都學什麼Cookie
- tar -cvf 和 tar cvf 區別,什麼時候使用 " - "
- C++中什麼時候用move,什麼時候用forward?C++Forward
- cookie是什麼?和session有什麼區別?CookieSession
- 什麼時候用有狀態session bean,什麼時候用無狀態session bean (轉)SessionBean
- *和body有什麼區別
- Java和Python是什麼?有什麼區別?JavaPython
- 什麼時候 AngularJS 會超越 jQueryAngularJSjQuery
- Cache 和 Buffer 有什麼區別?
- mongodb和mysql有什麼區別MongoDBMySql
- shim和polyfill有什麼區別
- float和double有什麼區別?
- int 和 Integer 有什麼區別
- cookie和session 有什麼區別?CookieSession
- session 和 cookie 有什麼區別?SessionCookie
- modbus和tcp有什麼區別?TCP
- Nginx和Apache有什麼區別?NginxApache
- COOKIE和SESSION有什麼區別?CookieSession
- RegisterClass和RegisterClassEx有什麼區別?
- for update 和 for update of 有什麼區別
- PEAR 和 PECL 有什麼區別?
- Activity和Fragment有什麼區別Fragment
- vue和react有什麼區別?VueReact
- Iterator和ListIterator有什麼區別
- Hifi和ONT 有什麼區別
- HTTPS和HTTP有什麼區別,到底安全在哪裡?HTTP
- 什麼時候採用socket通訊,什麼時候採用http通訊HTTP
- 什麼是報表工具?和 EXCEL 有什麼區別?Excel
- Java 介面和抽象類是什麼,有什麼區別Java抽象
- 什麼是 MicroPython?和CPython有什麼區別?Python
- 什麼是SCRM系統?和CRM有什麼區別?
- png是什麼格式 png和jpg有什麼區別
- xpgu是什麼 xgpu和xgp有什麼區別GPU
- 什麼時候該用vuex?Vue
- 什麼時候該用MongoDB?MongoDB
- EJB2.0中什麼時候用local interface,什麼時候用remote interface (轉)REM
- MySQL、NoSQL分別是什麼?有什麼區別?MySql
- IPFS和區塊鏈有什麼區別區塊鏈