jQueryを使用してこれを行う方法-document.getElementById(“ selectlist”)。value


141

jQueryでは、何に相当しdocument.getElementById("selectlist").valueますか?

選択リスト項目の値を取得しようとしています。

ありがとう。


10
質問がGoogleで数秒で、またはJQueryのドキュメントを読むことで答えられる可能性があるため、反対票を投じている可能性があります。
zombat 2009

53
SOのユーザーを勇気づけるために扁桃腺に+1。彼の質問は、それが解決するのがいかに簡単か難しいかにかかわらず、完全に有効なものです。このテーマに関する今後の検索のためにSOへのトラフィックを増やします。
スミス氏

7
c'mon guys-jQuery voodooは、私のような古い人、私が過去20年間ほど経験しているサーバー開発者にとって、それほど簡単に学ぶことはできません。:-)
marc_s 2009

1
@Boekwurm Ben-彼は勇敢かもしれませんが、SOユーザーのせいにすることもできません。人々は一般的に質問をする人による少しの努力を見るのが好きです。
zombat 2009

12
私が覚えているように、これは私がjQueryについて得なかった最初のものでした。真実が語られれば、それは妥当な質問だと思います。stackoverflow.com/questions/75296/...
ジェームズ・ワイズマン

回答:



214

「同等」はここの言葉です

その間...

$('#selectlist').val();

...と同等です...

document.getElementById("selectlist").value

...それは注目に値する...

$('#selectlist')

...「同等」は同じではありませんが...

document.getElementById("selectlist")

...前者はDOMオブジェクトではなくjQueryオブジェクトを返すため。

jQueryオブジェクトからDOMオブジェクトを取得するには、以下を使用します。

$('#selectlist').get(); //get all DOM objects in the jQuery collection
$('#selectlist').get(0); //get the DOM object in the jQuery collection at index 0
$('#selectlist')[0]; //get the DOM objects in the jQuery collection at index 0

1
ここでは少し接線かもしれませんが、これは素晴らしい情報です:jQueryからDOMオブジェクトを取得する方法はありますか? 編集編集で自分の質問に答えました。
クレイトンヒューズ、

4
getElementById()を$()で置き換えることができないことに気づくまで、1時間壁に頭をぶつけました。この回答をありがとうございました!
knite、

3
@knite-はい。初めてjQueryを使用したときに、誰かに説明してもらいたいです。
James Wiseman、

1
jqueryでDOMオブジェクトを取得する後半の説明に感謝します:)
kailash19

+1オールディー、しかしグッディー。GoogleマップがDOMオブジェクトを受け入れたが、jQueryオブジェクトを受け入れなかった理由を理解しようとしていました。クイックgoogle searchは、jQueryのドキュメントではなく、私をここに導きました。
TonyG 2013

9

カオスは問題になっていますが、これらの種類の質問については、Jqueryドキュメントをオンラインで確認する必要があります。あなたが追いかけている機能は「jqueryセレクター」と呼ばれます

一般的にあなたはそうします$('#ID').val()-.afterwardsはセレクターから返される要素に対して多くのことを行うことができます。また、特定のクラスのすべての要素を選択して、それぞれに対して何かを行うこともできます。いくつかの良い例についてはドキュメントをチェックしてください。


9

それは3つの異なる方法で行うことができますが、それらはすべてほぼ同じです

JavaScriptの方法

document.getElementById('test').value

jqueryの方法

$("#test").val()          

$("#test")[0].value             

$("#test").get(0).value

これが最良の答えです。ありがとうございました!
Carter Medlin 14

2

jQuery IDセレクターがdocument.getElementByIdより遅いのではないかと疑問に思っている方は、答えは「はい」ですが、DOM全体を検索して要素を探すという先入観のためではありません。jQueryは実際にはネイティブメソッドを使用します。これは、jQueryが最初に正規表現を使用してセレクター内の文字列を分離し、チェックするためです。もちろん、コンストラクターを実行するためです。

rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/

一方、引数としてDOM要素を使用すると、「this」がすぐに返されます。

したがって、この:

$(document.getElementById('blah')).doSomething();

常にこれよりも高速になります:

$('#blah').doSomething();

0

理由を思い出せないが、$('#selectlist').val()常に正しい項目値を返さない場合があるので、$('#selectlist option:selected').val()代わりに使用します。


多分あなたはこれを確認するいくつかのリンクを投稿することができます。でもビックリします。これはjQueryの根本的なバグです。ライブラリのバグのあるバージョンを使用している可能性はありますか?
ジェームズ・ワイズマン

Jamesである可能性があります。1.3.0であった可能性があると思いますが、1.3.2では再現できないようですが、IE6または7でもインストールできなかった可能性があります。元の原因を突き止めて、ここで報告できたら。
ブレットライアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.