實(shí)例
找出所有屬于 div 元素的子元素的 p 元素,然后設(shè)置其邊框?qū)傩裕?/p>
$("div > p")
.css("border", "1px solid gray");
定義和用法
jQuery() 方法接受一個(gè)字符串,其中包含了用于匹配元素集合的 CSS 選擇器。
jQuery() 函數(shù)有三種語法:
語法 1
接受一個(gè)字符串,其中包含了用于匹配元素集合的 CSS 選擇器:
jQuery(selector, [context])
語法 2
使用原始 HTML 的字符串來創(chuàng)建 DOM 元素:
jQuery(html,[ownerDocument])
語法 3
綁定一個(gè)在 DOM 文檔載入完成后執(zhí)行的函數(shù):
jQuery( callback )
jQuery( selector, [ context ] )
該語法有以下幾種用法:
用法 1 :設(shè)置選擇器環(huán)境
語法
jQuery(selector, [context])
默認(rèn)情況下,選擇器從文檔根部對(duì) DOM 進(jìn)行搜索。不過,可以為 $() 設(shè)置可選的 context 參數(shù)。
例如,如果我們希望在一個(gè) callback 中搜索一個(gè)元素,可以限定下面的搜索:
實(shí)例
$("div.foo").click(function() {
$("span", this)
.addClass("bar");
});
由于我們已經(jīng)將 span 選擇器限定到 this 這個(gè)環(huán)境中,只有被點(diǎn)擊元素中的 span 會(huì)得到附加的 class。
在內(nèi)部,選擇器環(huán)境是通過 .find() 方法實(shí)現(xiàn)的,因此 $("span", this) 等價(jià)于 $(this).find("span")。
jQuery 的核心功能都是通過這個(gè)函數(shù)實(shí)現(xiàn)的。jQuery中的一切都基于這個(gè)函數(shù),或者說都是在以某種方式使用這個(gè)函數(shù)。這個(gè)函數(shù)最基本的用法就是向它傳遞一個(gè)表達(dá)式(通常由 CSS 選擇器組成),然后根據(jù)這個(gè)表達(dá)式來查找所有匹配的元素。
默認(rèn)情況下, 如果沒有指定 context 參數(shù),$() 將在當(dāng)前的 HTML document 中查找 DOM 元素;如果指定了 context 參數(shù),如一個(gè) DOM 元素集或 jQuery 對(duì)象,那就會(huì)在這個(gè) context 中查找。在 jQuery 1.3.2 以后,其返回的元素順序等同于在 context 中出現(xiàn)的先后順序。
用法 2 :使用 DOM 元素
語法
jQuery(element)
該函數(shù)允許我們通過使用以其他方式找到的 DOM 元素來創(chuàng)建 jQuery 對(duì)象。該功能通常的用法是,對(duì)已經(jīng)通過 this 關(guān)鍵字傳遞到 callback 函數(shù)的元素調(diào)用 jQuery 的方法:
實(shí)例
$("div.foo"
).click(function() {
$(this).slideUp();
});
此例會(huì)在元素被點(diǎn)擊時(shí)使用滑動(dòng)動(dòng)畫對(duì)其進(jìn)行隱藏。由于處理程序接受的 this 關(guān)鍵詞中的被點(diǎn)擊項(xiàng)目是純的 DOM 元素,因此在對(duì)其調(diào)用 jQuery 的方法之前,必須用 jQuery 對(duì)象包裝該元素。
這個(gè)函數(shù)也可以接收 XML 文檔和 Window 對(duì)象(雖然它們不是 DOM 元素)作為有效的參數(shù)。
當(dāng) XML 數(shù)據(jù)從 Ajax 調(diào)用中返回后,我們可以使用 $() 函數(shù)通過 jQuery 對(duì)象包裝該數(shù)據(jù)。一旦完成,我們就可以使用 .find() 和其他 DOM 遍歷方法來取回 XML 結(jié)構(gòu)中單個(gè)元素。
用法 3 :克隆 jQuery 對(duì)象
語法
jQuery(jQuery object)
當(dāng)以參數(shù)的形式向 $() 函數(shù)傳遞 jQuery 對(duì)象后,會(huì)創(chuàng)建一個(gè)該對(duì)象的副本。與初始對(duì)象一樣,新的 jQuery 對(duì)象引用相同的 DOM 元素。
用法 4 :返回空的集合
語法
jQuery()
對(duì)于 jQuery 1.4,調(diào)用無參數(shù)的 jQuery() 方法會(huì)返回空的 jQuery 集合。在之前版本的 jQuery 中,這樣會(huì)返回包含 document 節(jié)點(diǎn)的集合。
jQuery( html, [ ownerDocument ] )
該語法有以下幾種用法:
用法 1 :創(chuàng)建新的元素
語法
jQuery(html,[ownerDocument])
你可以傳遞一個(gè)手寫的 HTML 字符串,或者由某些模板引擎或插件創(chuàng)建的字符串,也可以是通過 AJAX 加載過來的字符串。但是在你創(chuàng)建 input 元素的時(shí)會(huì)有限制,可以參考第二個(gè)示例。
當(dāng)然這個(gè)字符串可以包含斜杠 (比如一個(gè)圖像地址),還有反斜杠。當(dāng)你創(chuàng)建單個(gè)元素時(shí),請(qǐng)使用閉合標(biāo)簽或 XHTML 格式。例如,創(chuàng)建一個(gè) span ,可以用 $("<span/>") 或 $("<span></span>") ,但不推薦 $("<span>")。在 jQuery 中,這個(gè)語法等同于 $(document.createElement("span"))。
如果以參數(shù)的形式將字符串傳遞給 $(),jQuery 會(huì)檢查字符串是否是 HTML (比如,字符串某些位置存在標(biāo)簽)。如果不是,則把字符串解釋為選擇器表達(dá)式,請(qǐng)見上面的講解。但如果字符串是 HTML 片段,則 jQuery 試圖創(chuàng)建由該 HTML 片段描述的 DOM 元素。然后會(huì)創(chuàng)建并返回一個(gè)引用這些 DOM 元素的 jQuery 對(duì)象:
實(shí)例
$("<p id="test">My <em>new</em> text</p>").appendTo("body");
如果 HTML 片段比不含屬性的簡單標(biāo)簽更復(fù)雜,如同上面例子中的 HTML,那么元素實(shí)際的創(chuàng)建過程是由瀏覽器的 innerHTML 機(jī)制完成的。具體地講,jQuery 會(huì)創(chuàng)建新的 <div> 元素,然后為傳入的 HTML 片段設(shè)置元素的 innerHTML 屬性。當(dāng)參數(shù)只是簡單的標(biāo)簽,比如$("<img />") 或 $("<a></a>"),jQuery 會(huì)通過內(nèi)生的 JavaScript createElement() 函數(shù)來創(chuàng)建元素。
要確??缙脚_(tái)兼容性,片段的結(jié)構(gòu)必須良好。能夠包含其他元素的標(biāo)簽必須成對(duì)出現(xiàn)(帶有關(guān)閉標(biāo)簽):
$("<a href="http://jquery.com"></a>");
不過,jQuery 也允許類似 XML 的標(biāo)簽語法:
$("<a/>");
無法包含其他元素的標(biāo)簽可以關(guān)閉,也可以不關(guān)閉:
$("<img />"); $("<input>");
用法 2 :設(shè)置屬性和事件
語法
jQuery(html,props)
對(duì)于 jQuery 1.4,我們可以向第二個(gè)參數(shù)傳遞一個(gè)屬性映射。該參數(shù)接受能夠傳遞給 .attr() 方法的屬性的超集。此外,可以傳遞任意的事件類型,并可以調(diào)用下面的 jQuery 方法:val, css, html, text, data, width, height, or offset.
注意,Internet Explorer 不允許你創(chuàng)建 input 元素并改變其類型;您必須使用例如 "<input type="checkbox" />" 來規(guī)定類型。
實(shí)例
創(chuàng)建一個(gè) <input> 元素,同時(shí)設(shè)定 type 屬性、屬性值,以及一些事件。
$("<input>", { type: "text", val: "Test", focusin: function() { $(this).addClass("active"); }, focusout: function() { $(this).removeClass("active"); } }).appendTo("form");
jQuery( callback )
允許你綁定一個(gè)在 DOM 文檔載入完成后執(zhí)行的函數(shù)。
該函數(shù)的作用如同 $(document).ready() 一樣,只不過用這個(gè)函數(shù)時(shí),需要把頁面中所有需要在 DOM 加載完成時(shí)執(zhí)行的其他 $() 操作符都包裝到其中來。盡管從技術(shù)上來說,這個(gè)函數(shù)是可鏈接的,但真正以這種方式鏈接的情況并不多。
例子
當(dāng)DOM加載完成后,執(zhí)行其中的函數(shù):
$(function(){ // 文檔就緒 });
更多建議: