在看到jQuery的相關資料時看到一個例子,其中主要有分出 this 和 $(this)二個部份,上線爬一下文也大約了解了一下。
$(this)生成的是什麼
$()生成的是什麼呢?實際上$()=jquery(),那麼也就是說返回的是一個jquery的對象。
那麼依照,$()返回的是jquery對象這一結論,可以得出$(this)得到的是一個jquery對象.使用萬能的alert()方法會出現[object Object]的字串。出來的是一個 object,該object自然是jquery的對象。也即是說我們用通過$(‘指定對象元素’)來調用jquery的方法和屬性等。
this代表什麼?
this表示上下文所處的這個對象,這個對象到底是個什麼對象呢?加入js裡面也有getType的話返回的值會是什麼呢
本質就是JavaScript與jQuery對象的轉換
this 是 JavaScript 中的關鍵字。 $(this) 可以認為是用 jQuery 包裝過 JavaScript 中的 this,包裝後 $(this) 就會繼承 jQuery 的方法。
$(this)是jquery對象,能調用jquery的方法,例如click(), keyup()。
而this,則是html元素對象,能調用元素屬性,例如this.id,this.value。
例如假設已經使得this和$(this)都指向了input對象了,若要獲得input的值,可以this.value,但$(this)就得$(this).val()。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <head> <meta charset="UTF-8"> <title>jqeury - .siblings() & $(this.id)</title> <style> body { font-size: 20px; } li[id] { color: #fff; background-color: blue; } </style> </head> <body> <ul> <li>01</li> <li>02</li> <li class="id1">03</li> <li id="id1">04</li> <li class="id1">05</li> <li class="id1">06</li> <li class="id2">07</li> <li id="id2">08</li> <li class="id2">09</li> <li class="id2">10</li> </ul> <!--<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>--> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script> $(function(){ $("ul li[id]").hover(function () { $(this).siblings().css("color","gray"); $("." + this.id).css("color","#ccc"); /*console.log($(this.id))*/ console.log(this.id) }, function () { $(this).siblings().css("color",""); }); }); </script> </body> |
See the Pen jqeury – .siblings() & $(this.id) by Jimmy_Wu (@Jimmy_Wu) on CodePen.
資料來源
jquery的this和$(this)區別分析
大家知道 jquery裡面$(this) 和 this 的區別 是什麼????
jQuery裡$(this)和this的區別在哪?
jQuery使用之(一)標記元素屬性