Jquery的學習(二)基礎核心

來源:互聯網
上載者:User

Jquery的學習(二)基礎核心

1.學習要點:

1.代碼風格
2.載入模式
3.對象互換


一.代碼風格:


在jQuery程式中,不管是頁面元素的選擇、內建的功能函數,都是貨幣符號“$”來起始的。而這個“$”就是jQuery當中最重要且專屬的對象:jQuery對象,所以我們在頁面元素選擇或執行功能函數的時候可以這麼寫:
$(function () {});
//執行一個匿名函數
$(‘#box’);
//進行執行的ID元素選擇
$(‘#box’).css(‘color’, ‘red’);
//執行功能函數
由於$本身就是jQuery對象的縮寫形式,那麼也就是說上面的三段代碼也可以寫成如下形式:
jQuery(function () {});
jQuery(‘#box’);
jQuery(‘#box’).css(‘color’, ‘red’);
在執行功能函數的時候,我們發現.css()這個功能函數並不是直接被“$”或jQuery對象調用執行的,而是先擷取元素後,返回某個對象再調用.css()這個功能函數。那麼也就是說,這個返回的對象其實也就是jQuery對象。
$().css(‘color’, ’red’);
//理論上合法,但實際上缺少元素而報錯
值得一提的是,執行了.css()這個功能函數後,最終返回的還是jQuery對象,那麼也就是說,jQuery的代碼模式是採用的連綴方式,可以不停的連續調用功能函數。
$('#box').css('color', 'red').css('font-size', '50px'); //連綴
jQuery中代碼注釋和JavaScript是保持一致的,有兩種最常用的注釋:單行使用“//...”,多行使用“/* ... */”。
//$('#box').css('color', 'red');



二.載入模式(這個我認為特別重要因為在面試的時候很多人被問起這個問題)

我們在之前的代碼一直在使用$(function () {});這段代碼進行首尾包裹,那麼為什麼必須要包裹這段代碼呢?原因是我們jQuery庫檔案是在body元素之前載入的,我們必須等待所
有的DOM元素載入後,延遲支援DOM操作,否則就無法擷取到。在延遲等待載入,JavaScript提供了一個事件為load,方法如下:
window.onload = function () {};
//JavaScript等待載入
$(document).ready(function () {});
//jQuery等待載入

load載入和read載入的區別

window.onload
$(document).ready()
執行機制 必須等待網頁全部載入完畢(包括圖片等),然後再執行包裹代碼 只需要等待網頁中的DOM結構載入完畢,就能執行包裹的代碼
執行次數 只能執行一次,如果第二次,那麼第一次的執行會被覆蓋 可以執行多次,第N次都不會被上一次覆蓋
簡寫方案 $(function () {});

















在實際應用中,我們都很少直接去使用window.onload,因為他需要等待圖片之類的大型元素載入完畢後才能執行JS代碼。所以,最頭疼的就是網速較慢的情況下,頁面已經全面展開,圖片還在緩慢載入,這時頁面上任何的JS互動功能全部處在假死狀態。並且只能執行單次在多次開發和團隊開發中會帶來困難。


三.對象互換

jQuery 對象雖然是 jQuery 庫專屬的對象,但它也是通過 JavaScript 進行封裝而來的。我們可以直接輸出來得到它的資訊。
alert($); //jQuery 對象方法內部
alert($()); //jQuery 對象返回的對象,還是 jQuery
alert($('#box')); //包裹 ID 元素返回對象,還是 jQuery

從上面三組代碼我們發現:只要使用了包裹後,最終返回的都是 jQuery 對象。這樣的好處顯而易見,就是可以連綴處理。但有時,我們也需要返回原生的 DOM 對象,比如:


alert(document.getElementById('box')); //[object HTMLDivElement]

jQuery 想要達到擷取原生的 DOM 對象,可以這麼處理:


alert($('#box').get(0)); //ID 元素的第一個原生 DOM


從上面 get(0),這裡的索引看出,jQuery 是可以進行批量處理 DOM 的,這樣可以在很多需要迴圈遍曆的處理上更加得心應手。


































聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.