2011-07-14 8 views
2

における再利用の変数は、私が持っていると言う:jQueryの - 選択

HTML:

<select id="mySelect"><option value="0">option-1</option>...</select> 

JS:

var select = $("#mySelect"); 

と私はさらに下に、私がしたい:

var val = $("#mySelect option:selected").val(); 

私はこれを試しましたが、テキストだけを返すように見えます。 value属性:

$(select + "option:selected").val(); 
$(select + "option:selected").attr("value"); // also doesn't work 
+1

を試してみてください。 – pimvdb

+0

それは本当に私の質問に答えていない:どのように選択したオプション値を取得するオブジェクトを再利用することができますか? – doremi

答えて

4

.find()メソッドを試してください。

var opt = $("#mySelect"); 

var val = opt.find("option:selected").val(); 

(それは非常に多くの言語で予約されていますので、単に「選択」使用できませんでした)

は、各時間を見つける新しいをやっていないので、これは少しより効率的かもしれません。

+0

これは機能します。効率性はどれくらいですか?これは最も最適化された方法ですか? – doremi

+0

これを行う最も効率的な方法は、私が考えることができることです。 – aepheus

+0

私が読んだところでは、新しい検索を毎回行うのではなく、DOM全体を調べなければならないので、単一の検索を行う方が良いです。オブジェクトから移動すると、すでに検索時間が最小限に抑えられています。 – Narnian

0

これを試してみてください:

var strSelect = "#mySelect"; 
var val = $(strSelect + " option:selected").val(); 
+0

良い考え。スペースは欠けていた。 – Narnian

+0

スペースが足りないだけでなく、 'select' varは単なる文字列です。 Narnianは、 '.find()'メソッドを使ってより良いソリューションを提供します。実際にjQueryオブジェクトにするために 'select'が必要な場合に便利です(つまり、すでにいくつかの操作を行っている場合)。 –

+1

このスペースは本当に必要ですか?もしそうなら、jQueryのドキュメントのいくつかの例は間違っています:http://api.jquery.com/val/ – doremi

0

あなたはjQueryオブジェクトと文字列を連結することはできません

$(select).find("option:selected").val();