原文:http://www.w3school.com.cn/jquery/core_jquery.asp#syntax1
執行個體
找出所有屬於 div 元素的子項目的 p 元素,然後設定其邊框屬性:
$("div > p").css("border", "1px solid gray");
親自試一試 定義和用法
jQuery() 方法接受一個字串,其中包含了用於匹配元素集合的 CSS 選取器。
jQuery() 函數有三種文法: 文法 1
接受一個字串,其中包含了用於匹配元素集合的 CSS 選取器:
jQuery(selector, [context])
詳細用法 文法 2
使用原始 HTML 的字串來建立 DOM 元素:
jQuery(html,[ownerDocument])
詳細用法 文法 3
綁定一個在 DOM 文檔載入完成後執行的函數:
jQuery( callback )
詳細用法 jQuery( selector, [ context ] )
該文法有以下幾種用法: 用法 1 :設定選取器環境 文法
jQuery(selector, [context])
預設情況下,選取器從文檔根部對 DOM 進行搜尋。不過,可以為 $() 設定可選的 context 參數。
例如,如果我們希望在一個 callback 中搜尋一個元素,可以限定下面的搜尋: 執行個體
$("div.foo").click(function() { $("span", this).addClass("bar");});
由於我們已經將 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(element)
該函數允許我們通過使用以其他方式找到的 DOM 元素來建立 jQuery 對象。該功能通常的用法是,對已經通過 this 關鍵字傳遞到 callback 函數的元素調用 jQuery 的方法: 執行個體
$("div.foo").click(function() { $(this).slideUp();});
此例會在元素被點擊時使用滑動動畫對其進行隱藏。由於處理常式接受的 this 關鍵詞中的被點擊項目是純的 DOM 元素,因此在對其調用 jQuery 的方法之前,必須用 jQuery 對象封裝該元素。
這個函數也可以接收 XML 文檔和 Window 對象(雖然它們不是 DOM 元素)作為有效參數。
當 XML 資料從 Ajax 調用中返回後,我們可以使用 $() 函數通過 jQuery 對象封裝該資料。一旦完成,我們就可以使用 .find() 和其他 DOM 遍曆方法來取回 XML 結構中單個元素。 用法 3 :複製 jQuery 對象 文法
jQuery(jQuery object)
當以參數的形式向 $() 函數傳遞 jQuery 對象後,會建立一個該對象的副本。與初始對象一樣,新的 jQuery 對象引用相同的 DOM 元素。 用法 4 :返回空的集合 文法
jQuery()
對於 jQuery 1.4,調用無參數的 jQuery() 方法會返回空的 jQuery 集合。在之前版本的 jQuery 中,這樣會返回包含 document 節點的集合。 jQuery( html, [ ownerDocument ] )
該文法有以下幾種用法: 用法 1 :建立新的元素 文法
jQuery(html,[ownerDocument])
你可以傳遞一個手寫的 HTML 字串,或者由某些模板引擎或外掛程式建立的字串,也可以是通過 AJAX 載入過來的字串。但是在你建立 input 元素的時會有限制,可以參考第二個樣本。
當然這個字串可以包含斜杠 (比如一個映像地址),還有反斜線。當你建立單個元素時,請使用閉合標籤或 XHTML 格式。例如,建立一個 span ,可以用 $("<span/>") 或 $("<span></span>") ,但不推薦 $("<span>")。在 jQuery 中,這個文法等同於 $(document.createElement("span"))。
如果以參數的形式將字串傳遞給 $(),jQuery 會檢查字串是否是 HTML (比如,字串某些位置存在標籤)。如果不是,則把字串解釋為選取器運算式,請見上面的講解。但如果字串是 HTML 片段,則 jQuery 試圖建立由該 HTML 片段描述的 DOM 元素。然後會建立並返回一個引用這些 DOM 元素的 jQuery 對象: 執行個體
$("<p id="test">My <em>new</em> text</p>").appendTo("body");
如果 HTML 片段比不含屬性的簡單標籤更複雜,如同上面例子中的 HTML,那麼元素實際的建立過程是由瀏覽器的 innerHTML 機制完成的。具體地講,jQuery 會建立新的 <div> 元素,然後為傳入的 HTML 片段設定元素的 innerHTML 屬性。當參數只是簡單的標籤,比如$("<img />") 或 $("<a></a>"),jQuery 會通過內生的 JavaScript createElement() 函數來建立元素。
要確保跨平台相容性,片段的結構必須良好。能夠包含其他元素的標籤必須成對出現(帶有關閉標籤):
$("<a href="http://jquery.com"></a>");
不過,jQuery 也允許類似 XML 的標籤文法:
$("<a/>");
無法包含其他元素的標籤可以關閉,也可以不關閉:
$("<img />");$("<input>");
用法 2 :設定屬性和事件
文法
jQuery(html,props)
對於 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(){ // 文檔就緒});