JavaScript強化教程——jQuery 核心

  • 2019 年 12 月 4 日
  • 筆記

本文作者:IMWeb 王軍 原文出處:IMWeb社區 未經同意,禁止轉載

本文為 H5EDU 機構官方 HTML5培訓 教程,主要介紹:JavaScript強化教程 —— jQuety

實例 找出所有屬於 div 元素的子元素的 p 元素,然後設置其邊框屬性: [code]$("div > p") .css("border", "1px solid gray");[/code]

定義和用法 jQuery() 方法接受一個字元串,其中包含了用於匹配元素集合的 CSS 選擇器。 jQuery() 函數有三種語法:語法 1 接受一個字元串,其中包含了用於匹配元素集合的 CSS 選擇器: jQuery([i]selector[/i], [[i]context[/i]])

詳細用法語法 2 使用原始 HTML 的字元串來創建 DOM 元素: jQuery([i]html[/i],[[i]ownerDocument[/i]])

詳細用法語法 3 綁定一個在 DOM 文檔載入完成後執行的函數: jQuery( callback )

詳細用法 jQuery( selector, [ context ] ) 該語法有以下幾種用法:用法 1 :設置選擇器環境語法 jQuery([i]selector[/i], [[i]context[/i]])

默認情況下,選擇器從文檔根部對 DOM 進行搜索。不過,可以為 $() 設置可選的 context 參數。 例如,如果我們希望在一個 callback 中搜索一個元素,可以限定下面的搜索:實例 $("div.foo").click(function() { [code]$("span", this) .addClass("bar"); }); [/code] 由於我們已經將 span 選擇器限定到 this 這個環境中,只有被點擊元素中的 span 會得到附加的 class。 在內部,選擇器環境是通過 .find() 方法實現的,因此 $("span", this) 等價於 $(this).find("span")。 jQuery 的核心功能都是通過這個函數實現的。jQuery中的一切都基於這個函數,或者說都是在以某種方式使用這個函數。這個函數最基本的用法就是向它傳遞一個表達式(通常由 CSS 選擇器組成),然後根據這個表達式來查找所有匹配的元素。 默認情況下, 如果沒有指定 context 參數,$() 將在當前的 HTML document中查找 DOM 元素;如果指定了 context 參數,如一個 DOM 元素集或 jQuery 對象,那就會在這個 context 中查找。在 jQuery 1.3.2 以後,其返回的元素順序等同於在 context 中出現的先後順序。用法 2 :使用 DOM 元素語法 jQuery([i]element[/i])

該函數允許我們通過使用以其他方式找到的 DOM 元素來創建 jQuery 對象。該功能通常的用法是,對已經通過 this 關鍵字傳遞到 callback 函數的元素調用 jQuery 的方法:實例 $([code]"div.foo" ).click(function() { $(this).slideUp(); }); [/code] 此例會在元素被點擊時使用滑動動畫對其進行隱藏。由於處理程式接受的 this 關鍵詞中的被點擊項目是純的 DOM 元素,因此在對其調用 jQuery 的方法之前,必須用 jQuery 對象包裝該元素。 這個函數也可以接收 XML 文檔和 Window對象(雖然它們不是 DOM 元素)作為有效的參數。 當 XML 數據從 Ajax 調用中返回後,我們可以使用 $() 函數通過 jQuery 對象包裝該數據。一旦完成,我們就可以使用 .find() 和其他 DOM 遍歷方法來取回 XML 結構中單個元素。用法 3 :克隆 jQuery 對象語法 jQuery([i]jQuery object[/i])

當以參數的形式向 $() 函數傳遞 jQuery 對象後,會創建一個該對象的副本。與初始對象一樣,新的 jQuery 對象引用相同的 DOM 元素。用法 4 :返回空的集合語法 jQuery()

對於 jQuery 1.4,調用無參數的 jQuery() 方法會返回空的 jQuery 集合。在之前版本的 jQuery 中,這樣會返回包含 document節點的集合。 jQuery( html, [ ownerDocument] ) 該語法有以下幾種用法:用法 1 :創建新的元素語法 jQuery([i]html[/i],[[i]ownerDocument[/i]])

你可以傳遞一個手寫的 HTML 字元串,或者由某些模板引擎或插件創建的字元串,也可以是通過 AJAX 載入過來的字元串。但是在你創建 input 元素的時會有限制,可以參考第二個示例。 當然這個字元串可以包含斜杠 (比如一個影像地址),還有反斜杠。當你創建單個元素時,請使用閉合標籤或 XHTML 格式。例如,創建一個 span ,可以用 $("") 或 $("") ,但不推薦 $("")。在 jQuery 中,這個語法等同於 $(document.createElement("span"))。 如果以參數的形式將字元串傳遞給 $(),jQuery 會檢查字元串是否是 HTML (比如,字元串某些位置存在標籤)。如果不是,則把字元串解釋為選擇器表達式,請見上面的講解。但如果字元串是 HTML 片段,則 jQuery 試圖創建由該 HTML 片段描述的 DOM 元素。然後會創建並返回一個引用這些 DOM 元素的 jQuery 對象:實例 $("

My new text

").appendTo("body");

如果 HTML 片段比不含屬性的簡單標籤更複雜,如同上面例子中的 HTML,那麼元素實際的創建過程是由瀏覽器的 機制完成的。具體地講,jQuery 會創建新的

元素,然後為傳入的 HTML 片段設置元素的 屬性。當參數只是簡單的標籤,比如$("

") 或 $(""),jQuery 會通過內生的 JavaScript createElement() 函數來創建元素。 要確保跨平台兼容性,片段的結構必須良好。能夠包含其他元素的標籤必須成對出現(帶有關閉標籤): $("";);

不過,jQuery 也允許類似 XML 的標籤語法: $("");

無法包含其他元素的標籤可以關閉,也可以不關閉: $("

?

"); $("<input>"); 用法 2 :設置屬性和事件語法 jQuery([i]html[/i],[i]props[/i])

對於 jQuery 1.4,我們可以向第二個參數傳遞一個屬性映射。該參數接受能夠傳遞給 .attr() 方法的屬性的超集。此外,可以傳遞任意的事件類型,並可以調用下面的 jQuery 方法:val, css, html, text, data, width, height, or offset. 注意,Internet Explorer 不允許你創建 input 元素並改變其類型;您必須使用例如 "<input type="checkbox" />" 來規定類型。實例 創建一個 <input> 元素,同時設定 type 屬性、屬性值,以及一些事件。 $("<input>", { type: "text", val: "Test", focusin: function() { $(this).addClass("active"); }, focusout: function() { $(this).removeClass("active"); } }).appendTo("form");

jQuery( callback ) 允許你綁定一個在 DOM 文檔載入完成後執行的函數。 該函數的作用如同 $(document).ready() 一樣,只不過用這個函數時,需要把頁面中所有需要在 DOM 載入完成時執行的其他 $() 操作符都包裝到其中來。儘管從技術上來說,這個函數是可鏈接的,但真正以這種方式鏈接的情況並不多。例子 當DOM載入完成後,執行其中的函數: $(function(){ // 文檔就緒 });