2011-08-12 17 views
1

私はちょうどJQueryを使い始めており、チュートリアルビデオを使って作業しています。ある時点で、プレゼンターはJQueryセレクターではなくJavascriptを使用します。ちょうど、関数にオブジェクトを渡すときにjavascriptのgetElementByIdがうまく動作する理由は疑問ですが、2番目のものはありませんか?JQueryをIDで選択document.GetElementByID

ありがとうございます!

// works 
addTask(document.getElementById('taskText'), evt); 

// doesn't 
addTask($('#taskText'), evt); 
+0

は、今、私たちは右、 'addTask'に何があるかを推測する必要があります。ゼロベースの配列としての

と思いますが、あなたはこれを行うことにより、DOM要素を渡すだろうか? – zerkms

+0

私はそれが違いをもたらさなかったと考えました - それはオブジェクトとイベントを受け入れます。私はそれを投稿することができます。 – Glinkot

+0

あなたの関数が1つのオブジェクトを受け入れ、別のオブジェクトを受け入れることができない場合は、明らかに関数に問題があります; – zerkms

答えて

9

getElementById()はDOM要素参照を返します。

jQueryのセレクタがjQueryオブジェクトを返します。あなたは

$('#taskText').get(0); 

を使用してjQueryオブジェクトから要素の参照を取得することができますhttp://api.jquery.com/get/

+0

ありがとうございます。 DOMとJqueryオブジェクトの間に違いがあるかどうかはわかりませんでした。ありがとう! – Glinkot

1

$('#taskText')はjQueryオブジェクトの参照を返します参照してください。

document.getElementById('taskText')は、DOM要素参照を返します。

addTask()関数では、関数を必要なものに変換する方法がわからない場合は、そのうちの1つが変換を必要とするため、問題になります。

あなたはjQueryオブジェクトから最初のDOM要素の参照を取得したい場合は、あなたがこれを行うことができます。

$('#taskText').get(0) 

したがって、これらの二つは同じでなければなりません:

$('#taskText').get(0) 
document.getElementById('taskText') 
+0

これはありがとう、ありがとう。 – Glinkot

4

に追加するにはあなたがjQuery(読みやすい)を使用したい場合は、他の答え、結果に関しては、次のようにDOMノードを直接得ることができます:

addTask($('#taskText')[0], evt); 
+1

+1そのことを忘れてしまった。 'get()'のページにも記載されています – Phil

+0

ありがとうございました。 – Glinkot

0

は両ので、あなたがHTML DOMオブジェクトに@Philとして

addTask($('#taskText')[0], evt); 
+0

ありがとうpramendra – Glinkot

0

を取得し、jfriend00 @に変更する必要が

document.getElementById('taskText'); //returns a HTML DOM Object 

var contents = $('#taskText'); //returns a jQuery Object 

var contents = $('#taskText')[0]; //returns a HTML DOM Object 

まったく同じ指摘している、のdocument.getElementById( 'taskText')がされていませんDOM要素、$( '#taskText')はjQueryオブジェクトです。後者は、セレクタと一致するすべてのDOM要素のオブジェクトです。

addTask($('#taskText')[0], evt); 
+0

なぜ投票が遅れましたか?説明はより適切でしょう – Ruxta

+0

ここで推測するだけですが、すべての答えはバックアップの他の回答です。「+1」と書かれたコメントもあるかもしれない。 – Phil

+0

私がこれを書いたときにそれらのコメントは掲載されていなかった。たぶん私は彼らに速いタイピング能力のための+1を与えるでしょう;) – Ruxta