2012-05-06 7 views
0

が、なぜこのようにjQueryの.find関数を使用して、いくつかの開発者は、次のとおりです。jQueryの:なぜ、()を.find使用

$(document).find('.progress').show(); 

あなたはクラスの名前を知っている場合は、あなただけ使用することができます。

$('.progress').show(); 

私は、UL-リストを持っているし、すべてのリチウム子供を選択したい場合でも、私はいくつかの明確さに感謝ちょうど

$('li')... 

でこれを行うことができます...ありがとう!

+0

たぶんjQueryのを知らない他の開発者に明確にするため。第1のものは、第2のものがそうでないところで、自明である。 –

答えて

2

.find()のポイントは、親要素内の要素を見つけることです。

$(document).find(...)には意味がありません。

1

それはgetElementbyIDまたはgetElementbyTagName

find()のようなネイティブJSにマップされませんので、直接クラスを使用するパフォーマンスヒットは、多くの場合、(要素の数が多いページ用)はるかに効率的になりますがあります。

編集::

私がこのことを思い出した記事を見つけました。ここで#5 http://dumitruglavan.com/jquery-performance-tips-cheat-sheet/

  1. 使用ではなく、コンテキスト実際 よりも()を見つけ、.find()関数は、より高速であるように思われます。しかし、これはあなたがDOM要素のたくさんのページを横断をたくさん持っているときに、よりカウント:
var divs = $('.testdiv', '#pageBody'); // 2353 on Firebug 3.6 

var divs = $('#pageBody').find('.testdiv'); // 2324 on Firebug 3.6 - The best time 

var divs = $('#pageBody .testdiv'); // 2469 on Firebug 3.6