2011-01-18 5 views

答えて

11

私はいくつかの部分で質問に答えます。

JavaScriptでは、documentキーワードはHTMLDocumentを含むオブジェクトのハンドルです(jQueryではなくすべてのJavaScript)。あなたはjQueryのに文書を渡すと、それはjQueryオブジェクトに文書を解析し...次のシナリオで

// Get the current web address 
alert(document.location.href); 

をこのハンドルを使用する場合があります。

"html"セレクタをjQueryに渡すと、この文字列を使用してセレクタに一致するドキュメントオブジェクトモデル内の要素が検索されます(すべての場合、html要素が1つあります)。

現実には、あなたがこれらの間の動作の違い気付くことはありません。

$(document).click(function() { alert('blah'); }); 
$('html').click(function() { alert('blah'); }); 
$('body').click(function() { alert('blah'); }); 

をしかし、技術的な違いは、その文書が対象と「HTML」であるがために検索するために使用される文字列です。素子。オブジェクトと一致する要素の両方がjQueryオブジェクトに変換されます。

これらはすべて、ページの「表示可能な」部分にクリックイベントハンドラを追加するため、ユーザーが現実にクリックできるページの唯一の部分です。

+0

素敵な説明 – kobe

+0

非常に有益な感謝:) – Elgoog

+0

ありがとう - 常に喜んで:) – Fenton

0

は、両方のinnerHTMLを、いただきました結果を出してみてください?

  • document<html>とその中のすべての要素
  • htmlを含む完全なドキュメントは、<html> -tagを参照し、これだけ<head><body>であるだろう本当にあることを私は数える(しかしhan'tが試験します)あなたの出力ではなく、<html>
  • 自体-tag

しかし:ドキュメントにクリックすると、常に<html>上のクリックになりますので、あなたのコード(クリックハンドラを追加する)ために、何の違いもないでしょう(あなたがサイトが有効で、<html>タグを持っている限り)

0

これらは同じものを選択します。唯一の違いは、jQueryのシズルエンジンがどのようにそれを見つけるかです。最初のケースはjQueryのinit関数の特別なケースで、getElementsByTagNameを使用する2番目のケースは上記のscneraioで

関連する問題