回答:
var foo = $('#multiple').val();
.val()
複数選択リストで関数を使用すると、選択した値の配列が返されます。
var selectedValues = $('#multipleSelect').val();
そしてあなたのhtmlで:
<select id="multipleSelect" multiple="multiple">
<option value="1">Text 1</option>
<option value="2">Text 2</option>
<option value="3">Text 3</option>
</select>
null
空の配列ではなく、何も選択されていない複数選択が返されることに注意してください。これは、選択した値をプログラムで追加する場合、正しい値にするために少しジャグリングする必要があることを意味します。
var selectedValues = $('#multipleSelect').val() || [];
ます。たとえば、文字列の配列を返すことにも注意してください。私は整数と比較していて、一致がなかったので、を追加しました.toString()
。
js map関数を使用することもできます:
$("#multipleSelect :selected").map(function(i, el) {
return $(el).val();
}).get();
次に、option
要素の任意のプロパティを取得できます。
return $(el).text();
return $(el).data("mydata");
return $(el).prop("disabled");
etc...
el
オプションごとにjQueryオブジェクトとしてラップするという余分な費用を支払う必要はありません。DOMがおかしくない場合は、すぐにDOMから離れてください。$(el).val()
だけに変更できますel.value
。もちろん、jQueryに慣れている場合や、他の例のようにデータや属性を取得したい場合でも、jQueryは誰にも害を与えません。
var selected=[];
$('#multipleSelect :selected').each(function(){
selected[$(this).val()]=$(this).text();
});
console.log(selected);
この問題への別のアプローチ。選択された配列はオプション値としてインデックスを持ち、各配列項目はその値としてテキストを持ちます。
例えば
<select id="multipleSelect" multiple="multiple">
<option value="abc">Text 1</option>
<option value="def">Text 2</option>
<option value="ghi">Text 3</option>
</select>
オプション1と2が選択されていると言う場合。
選択された配列は次のようになります:
selected['abc']=1;
selected['def']=2.
たった一行
var select_button_text = $('#SelectQButton option:selected')
.toArray().map(item => item.text);
出力:["text1"、 "text2"]
var select_button_text = $('#SelectQButton option:selected')
.toArray().map(item => item.value);
出力:["value1"、 "value2"]
.join()を使用する場合
var select_button_text = $('#SelectQButton option:selected')
.toArray().map(item => item.text).join();
出力:text1、text2、text3
HTMLコード:
<select id="multiple" multiple="multiple" name="multiple">
<option value=""> -- Select -- </option>
<option value="1">Opt1</option>
<option value="2">Opt2</option>
<option value="3">Opt3</option>
<option value="4">Opt4</option>
<option value="5">Opt5</option>
</select>
JQueryコード:
$('#multiple :selected').each(function(i, sel){
alert( $(sel).val() );
});
うまくいくことを願っています
$('#multiple').find(':selected')
始めることです:@Prabhagaran
選択した値をカンマ区切りで取得します
var Accessids = "";
$(".multi_select .btn-group>ul>li input:checked").each(function(i,obj)
{
Accessids=Accessids+$(obj).val()+",";
});
Accessids = Accessids.substring(0,Accessids.length - 1);
console.log(Accessids);
これを使うだけ
$('#multipleSelect').change(function() {
var selectedValues = $(this).val();
});
Text 1
値の代わりに取得したい場合はどうなりますか?交換する.val()
と.text()
?