# jQuery 核心 - jQuery() 方法
## 實例
找出所有屬于 div 元素的子元素的 p 元素,然后設置其邊框屬性:
```
$("div > p").css("border", "1px solid gray");
```
## 定義和用法
jQuery() 方法接受一個字符串,其中包含了用于匹配元素集合的 CSS 選擇器。
jQuery() 函數有三種語法:
### 語法 1
接受一個字符串,其中包含了用于匹配元素集合的 CSS 選擇器:
```
jQuery(_selector_, [_context_])
```
[詳細用法](#syntax1)
### 語法 2
使用原始 HTML 的字符串來創建 DOM 元素:
```
jQuery(_html_,[_ownerDocument_])
```
[詳細用法](#syntax2)
### 語法 3
綁定一個在 DOM 文檔載入完成后執行的函數:
```
jQuery( callback )
```
[詳細用法](#syntax3)
## 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(){
// 文檔就緒
});
```
- jQuery 參考手冊 - 選擇器
- jQuery 參考手冊 - 事件
- jQuery 事件 - bind() 方法
- jQuery 事件 - blur() 方法
- jQuery 事件 - change() 方法
- jQuery 事件 - click() 方法
- jQuery 事件 - dblclick() 方法
- jQuery 事件 - delegate() 方法
- jQuery 事件 - die() 方法
- jQuery 事件 - error() 方法
- jQuery 事件 - isDefaultPrevented() 方法
- jQuery 事件 - pageX 屬性
- jQuery 事件 - pageY 屬性
- jQuery 事件 - preventDefault() 方法
- jQuery 事件 - result 屬性
- jQuery 事件 - target 屬性
- jQuery 事件 - timeStamp 屬性
- jQuery 事件 - type 屬性
- jQuery 事件 - which 屬性
- jQuery 事件 - focus() 方法
- jQuery 事件 - keydown() 方法
- jQuery 事件 - keypress() 方法
- jQuery 事件 - keyup() 方法
- jQuery 事件 - live() 方法
- jQuery 事件 - load() 方法
- jQuery 事件 - mousedown() 方法
- jQuery 事件 - mouseenter() 方法
- jQuery 事件 - mouseleave() 方法
- jQuery 事件 - mousemove() 方法
- jQuery 事件 - mouseout() 方法
- jQuery 事件 - mouseover() 方法
- jQuery 事件 - mouseup() 方法
- jQuery 事件 - one() 方法
- jQuery 事件 - ready() 方法
- jQuery 事件 - resize() 方法
- jQuery 事件 - scroll() 方法
- jQuery 事件 - select() 方法
- jQuery 事件 - submit() 方法
- jQuery 事件 - toggle() 方法
- jQuery 事件 - trigger() 方法
- jQuery 事件 - triggerHandler() 方法
- jQuery 事件 - unbind() 方法
- jQuery 事件 - undelegate() 方法
- jQuery 事件 - unload 屬性
- jQuery 參考手冊 - 效果
- jQuery 效果 - animate() 方法
- jQuery 效果 - clearQueue() 方法
- jQuery 效果 - fadeIn() 方法
- jQuery 效果 - fadeOut() 方法
- jQuery 效果 - fadeTo() 方法
- jQuery 效果 - hide() 方法
- jQuery 效果 - show() 方法
- jQuery 效果 - slideDown() 方法
- jQuery 效果 - slideToggle() 方法
- jQuery 效果 - slideUp() 方法
- jQuery 效果 - stop() 方法
- jQuery 效果 - toggle() 方法
- jQuery 參考手冊 - 文檔操作
- jQuery 屬性操作 - addClass() 方法
- jQuery 文檔操作 - after() 方法
- jQuery 文檔操作 - append() 方法
- jQuery 文檔操作 - appendTo() 方法
- jQuery 屬性操作 - attr() 方法
- jQuery 文檔操作 - before() 方法
- jQuery 文檔操作 - clone() 方法
- jQuery 文檔操作 - detach() 方法
- jQuery 文檔操作 - empty() 方法
- jQuery 屬性操作 - hasClass() 方法
- jQuery 文檔操作 - html() 方法
- jQuery 文檔操作 - insertAfter() 方法
- jQuery 文檔操作 - insertBefore() 方法
- jQuery 文檔操作 - prepend() 方法
- jQuery 文檔操作 - prependTo() 方法
- jQuery 文檔操作 - remove() 方法
- jQuery 屬性操作 - removeAttr() 方法
- jQuery 屬性操作 - removeClass() 方法
- jQuery 文檔操作 - replaceAll() 方法
- jQuery 文檔操作 - replaceWith() 方法
- jQuery 文檔操作 - text() 方法
- jQuery 屬性操作 - toggleClass() 方法
- jQuery 文檔操作 - unwrap() 方法
- jQuery 屬性操作 - val() 方法
- jQuery 文檔操作 - wrap() 方法
- jQuery 文檔操作 - wrapAll() 方法
- jQuery 文檔操作 - wrapInner() 方法
- jQuery 參考手冊 - 屬性操作
- jQuery 參考手冊 - CSS 操作
- jQuery CSS 操作 - css() 方法
- jQuery CSS 操作 - height() 方法
- jQuery CSS 操作 - offset() 方法
- jQuery CSS 操作 - offsetParent() 方法
- jQuery CSS 操作 - position() 方法
- jQuery CSS 操作 - scrollLeft() 方法
- jQuery CSS 操作 - scrollTop() 方法
- jQuery CSS 操作 - width() 方法
- jQuery 參考手冊 - Ajax
- jQuery ajax - ajax() 方法
- jQuery ajax - ajaxComplete() 方法
- jQuery ajax - ajaxError() 方法
- jQuery ajax - ajaxSend() 方法
- jQuery ajax - ajaxSetup() 方法
- jQuery ajax - ajaxStart() 方法
- jQuery ajax - ajaxStop() 方法
- jQuery ajax - ajaxSuccess() 方法
- jQuery ajax - get() 方法
- jQuery ajax - getJSON() 方法
- jQuery ajax - getScript() 方法
- jQuery ajax - load() 方法
- jQuery ajax - param() 方法
- jQuery ajax - post() 方法
- jQuery ajax - serialize() 方法
- jQuery ajax - serializeArray() 方法
- jQuery 參考手冊 - 遍歷
- jQuery 遍歷 - add() 方法
- jQuery 遍歷 - andSelf() 方法
- jQuery 遍歷 - children() 方法
- jQuery 遍歷 - closest() 方法
- jQuery 遍歷 - contents() 方法
- jQuery 遍歷 - each() 方法
- jQuery 遍歷 - end() 方法
- jQuery 遍歷 - eq() 方法
- jQuery 遍歷 - filter() 方法
- jQuery 遍歷 - find() 方法
- jQuery 遍歷 - first() 方法
- jQuery 遍歷 - has() 方法
- jQuery 遍歷 - is() 方法
- jQuery 遍歷 - last() 方法
- jQuery 遍歷 - map() 方法
- jQuery 遍歷 - next() 方法
- jQuery 遍歷 - nextAll() 方法
- jQuery 遍歷 - nextUntil() 方法
- jQuery 遍歷 - not() 方法
- jQuery 遍歷 - offsetParent() 方法
- jQuery 遍歷 - parent() 方法
- jQuery 遍歷 - parents() 方法
- jQuery 遍歷 - parentsUntil() 方法
- jQuery 遍歷 - prev() 方法
- jQuery 遍歷 - prevAll() 方法
- jQuery 遍歷 - prevUntil() 方法
- jQuery 遍歷 - siblings() 方法
- jQuery 遍歷 - slice() 方法
- jQuery 參考手冊 - 數據
- jQuery 遍歷 - clearQueue() 方法
- jQuery 數據 - data() 方法
- jQuery 數據 - jQuery.data() 方法
- jQuery 遍歷 - dequeue() 方法
- jQuery 遍歷 - jQuery.dequeue() 方法
- jQuery 遍歷 - hasData() 方法
- jQuery 遍歷 - queue() 方法
- jQuery 遍歷 - jQuery.queue() 方法
- jQuery 數據 - removeData() 方法
- jQuery 數據 - jQuery.removeData() 方法
- jQuery 參考手冊 - DOM 元素方法
- jQuery DOM 元素方法 - get() 方法
- jQuery DOM 元素方法 - index() 方法
- jQuery DOM 元素方法 - size() 方法
- jQuery DOM 元素方法 - toArray() 方法
- jQuery 參考手冊 - 核心
- jQuery 核心 - jQuery() 方法
- jQuery 核心 - noConflict() 方法
- jQuery 參考手冊 - 屬性
- jQuery context 屬性
- jQuery jquery 屬性
- jQuery jQuery.fx.interval 屬性
- jQuery jQuery.fx.off 屬性
- jQuery jQuery.support 屬性
- jQuery length 屬性
- 免責聲明