2012-03-28 73 views
3

有時$('.classname')$.find('.classname')會給出不同的結果。想知道兩者之間有什麼區別。

+5

您的意思是'$(部分選擇).find( '類名。' )'而不是'$ .find('。classname')'?因爲我沒有意識到jQuery中存在靜態'$ .find'函數。 – 2012-03-28 08:54:00

+0

它是$ .find('。classname') – 2012-03-28 09:06:03

+0

是的,我明白了。你能指點我這個函數的文檔,因爲我似乎無法找到它嗎? – 2012-03-28 09:08:56

回答

6
$('.classname') 

將搜索classname類和

元素
$.find('.classname') 

給你錯誤什麼都不做的DOM,why

.find(選擇)

selectorA包含選擇器表達式的字符串以匹配元素 針對。版本增加:1.6。

.find(jQuery對象) jQuery object一個與元素匹配的jQuery對象。版本添加: 1.6

.find(element) elementAn元素來匹配元素。

+0

$ .find('。classname')實際上不會給出錯誤。 – 2012-03-28 08:57:51

+0

不,它不會http://jsbin.com/oyocer/看到控制檯 – andlrc 2012-03-28 08:59:24

+0

@rituparnakashyap權利什麼都不會做會更合適 – Rafay 2012-03-28 09:00:17

1

$('.classname')將返回所有文檔中的類名的元素的列表,以便他們能夠.each()迭代。

$.find('.classname')搜索dom樹並返回該類的發生。但是,你必須提供一個父元素,如:

$(document).find('.classname')

2

我不能告訴你,

,但你可以看到源代碼爲$.find$.fn.find

$.find

這是一種由jQuery自身使用的方法,並且沒有將其用作查詢選擇器。

$.fn.find

$.find在覈心框架:(其中this是一個jQuery對象)

var ret = this.pushStack("", "find", selector), 
    length, n, r; 

for (i = 0, l = this.length; i < l; i++) { 
    length = ret.length; 
    jQuery.find(selector, this[i], ret); 

    ... 
相關問題