IDを渡すことでjQueryを介してselectのすべてのオプションを取得するにはどうすればよいですか?
私はテキストではなく、それらの値を取得することだけを探しています。
IDを渡すことでjQueryを介してselectのすべてのオプションを取得するにはどうすればよいですか?
私はテキストではなく、それらの値を取得することだけを探しています。
使用する:
$("#id option").each(function()
{
// Add $(this).val() to your list
});
jQueryはわかりませんが、select要素を取得すると、「options」オブジェクトが含まれていることは知っています。
var myOpts = document.getElementById('yourselect').options;
alert(myOpts[0].value) //=> Value of the first option
12歳の答え。それを少し近代化しましょう:
console.log( [...document.querySelector("#demo").options].map( opt => opt.value ) );
<select id="demo">
<option value="Belgium">Belgium</option>
<option value="Botswana">Botswana</option>
<option value="Burkina Faso">Burkina Faso</option>
<option value="Burundi">Burundi</option>
<option value="China">China</option>
<option value="France">France</option>
<option value="Germany">Germany</option>
<option value="India">India</option>
<option value="Japan">Japan</option>
<option value="Malaysia">Malaysia</option>
<option value="Mali">Mali</option>
<option value="Namibia">Namibia</option>
<option value="Netherlands">Netherlands</option>
<option value="North Korea">North Korea</option>
<option value="South Korea">South Korea</option>
<option value="Spain">Spain</option>
<option value="Sweden">Sweden</option>
<option value="Uzbekistan">Uzbekistan</option>
<option value="Zimbabwe">Zimbabwe</option>
</select>
$.map
おそらくこれを行う最も効率的な方法です。
var options = $('#selectBox option');
var values = $.map(options ,function(option) {
return option.value;
});
$('#selectBox option:selected')
選択したものだけが必要な場合は、変更オプションを追加できます。
最初の行はすべてのチェックボックスを選択し、それらの jQuery 要素を変数に入れます。次に.map
、jQuery の関数を使用して、その変数の各要素に関数を適用します。私たちがしているのは、各要素の値を返すことだけです。map 関数内でそれらを返すため、要求どおりに値の配列を実際に構築します。
いくつかの答えはを使用しますがeach
、map
ここではより良い代替手段です。
$("select#example option").map(function() {return $(this).val();}).get();
map
jQueryには(少なくとも)2つの関数があります。Thomas Petersenの答えは、「Utilities/jQuery.map」を使用しています。この回答では、「トラバーシング/マップ」(したがって、少しクリーンなコード)を使用しています。
それはあなたが値で何をしようとしているのかに依存します。たとえば、関数から値を返したい場合は、map
おそらくより良い代替手段です。ただし、値を直接使用する場合は、おそらく必要ですeach
。
$('select#id').find('option').each(function() {
alert($(this).val());
});
$("#id option").each(function()
{
$(this).prop('selected', true);
});
ただし、正しい方法は、次のように要素の DOM プロパティを設定することです。
$("#id option").each(function(){
$(this).attr('selected', true);
});
チェックボックスの名前ですべての「選択した値」を取得し、「、」で区切られた文字列で表示できます。
これを行う良い方法は、jQuery の $.map() を使用することです。
var selected_val = $.map($("input[name='d_name']:checked"), function(a)
{
return a.value;
}).join(',');
alert(selected_val);
これを行う最も効率的な方法は、$.map()
例:
var values = $.map($('#selectBox option'), function(ele) {
return ele.value;
});
そのために次のコードを使用できます。
var assignedRoleId = new Array();
$('#RolesListAssigned option').each(function(){
assignedRoleId.push(this.value);
});
複数選択オプションの場合:
$('#test').val()
選択した値のリストを返します。
$('#test option').length
オプションの総数を返します (選択されているものと選択されていないものの両方)
$("input[type=checkbox][checked]").serializeArray();
または:
$(".some_class[type=checkbox][checked]").serializeArray();
結果を表示するには:
alert($("input[type=checkbox][checked]").serializeArray().toSource());
選択したテキストを含むすべてのオプションを探している場合は、以下のコードが機能します。
$('#test').find("select option:contains('B')").filter(":selected");