2012-03-28 21 views
3

時々$('.classname')$.find('.classname')は異なる結果をもたらします。両方の違いは何ですか?

+5

あなたは$(一部のセレクタ) 'もしかして.find( 'クラス名。'(thisはjQueryオブジェクトである場合) ) 'の代わりに' $ .find( '。classname') '?なぜなら、私は静的 '$ .find'関数がjQueryに存在することを認識していないからです。 –

+0

$ .find( '。classname') –

+0

はい、わかります。私はそれを見つけることができないように私はこの関数のドキュメントに私を指摘できますか? –

答えて

6
$('.classname') 

クラスclassnameを持つ要素と

$.find('.classname') 

ためのDOMがあなたはは、何もしないwhy

.find(セレクタ)

selectorAエラー与える検索します一致するセレクタ式を含む文字列要素 に対してバージョンが追加されました:1.6。

.find(jQueryオブジェクト) jQuery object jQueryオブジェクトは、要素との照合を行います。バージョンが追加されました: 1.6

.find(要素) 要素と一致する要素。彼らは.each()で繰り返すことができるよう

+0

$ .find( '。classname')は実際にエラーを出しません。 –

+0

いいえhttp://jsbin.com/oyocer/コンソール – andlrc

+0

を参照@rituparnakashyapは何も適切ではないでしょう – Rafay

1

$('.classname')は、文書内のそのクラス名を持つ要素のすべてのリストを返します。

$.find('.classname')は、domツリーを検索し、クラスの出現を返します。しかし、あなたは例えば、親要素を供給する必要があります:

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

2

私は、

をあなたを伝えることはできませんが、あなたは$.findためと$.fn.find

ためのソースコードを見ることができます$.find

これはjQuery自体で使用されるメソッドであり、クエリセレクタとして使用することは推奨されていません。

$.fn.find

は、コアフレームワークに$.findを参照:

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); 

    ... 
関連する問題