IDを渡すことにより、jQueryを通じてselectのすべてのオプションを取得するにはどうすればよいですか?
テキストではなく、それらの値を取得することだけを探しています。
IDを渡すことにより、jQueryを通じてselectのすべてのオプションを取得するにはどうすればよいですか?
テキストではなく、それらの値を取得することだけを探しています。
回答:
使用する:
$("#id option").each(function()
{
// Add $(this).val() to your list
});
$.map
はるかにエレガントで、エラーが発生しにくくなります(以下を参照)。
$('#id option').map((index, option) => option.value)
:「バニラ」JS map
関数((item, index) =>
)と比較してコールバック署名がどのように反転するかに注意してください
私はjQueryを知りませんが、select要素を取得した場合、 'options'オブジェクトが含まれていることは知っています。
var myOpts = document.getElementById('yourselect').options;
alert(myOpts[0].value) //=> Value of the first option
$.map
おそらくこれが最も効率的な方法です。
var options = $('#selectBox option');
var values = $.map(options ,function(option) {
return option.value;
});
選択したオプション$('#selectBox option:selected')
のみが必要な場合は、に変更オプションを追加できます。
1行目はすべてのチェックボックスを選択し、それらのjQuery要素を変数に入れます。次に.map
、jQuery の関数を使用して、その変数の各要素に関数を適用します。私たちがやっていることは、各要素の値を返すことだけです。map関数の内部でそれらを返すため、要求どおりに実際に値の配列を作成します。
$('#selectBox').val()
です。選択した値の配列を返します。
いくつかの回答はを使用each
していますmap
が、ここではIMHOの方が優れています。
$("select#example option").map(function() {return $(this).val();}).get();
map
jQueryには(少なくとも)2つの関数があります。Thomas Petersenの回答では「Utilities / jQuery.map」を使用しています。この回答では、「トラバーシング/マップ」を使用しています(そのため、少しわかりやすいコードを使用しています)。
値をどのように処理するかによって異なります。たとえば、関数から値を返したい場合は、map
おそらくより良い代替手段です。ただし、値を直接使用する場合は、おそらく必要ですeach
。
get()
、返されるオブジェクトが基本配列を処理することは非常に一般的です。」- api.jquery.com/map
text()
代わりにに変更しましたval()
。ありがとうございました !(私はあなたに1000を超えさせました;->
)
$('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);
});
これにより、のオプション値が#myselectbox
きれいな配列に配置されます。
// First, get the elements into a list
var domelts = $('#myselectbox option');
// Next, translate that into an array of just the values
var values = $.map(domelts, function(elt, i) { return $(elt).val();});
$.map(domelts, elt=> $(elt).val())
チェックボックスの名前ですべての「選択された値」を取得し、「、」で区切られた文字列でそれらを表示できます。
これを行うための良い方法は、jQueryの$ .map()を使用することです。
var selected_val = $.map($("input[name='d_name']:checked"), function(a)
{
return a.value;
}).join(',');
alert(selected_val);
select
とoption
チェックボックスではありません。
これを行う最も効率的な方法は、 $.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
オプションの合計数を返します(選択されているものと選択されていないものの両方)
これはjQueryを使用した単純なスクリプトです。
var items = $("#IDSELECT > option").map(function() {
var opt = {};
opt[$(this).val()] = $(this).text();
return opt;
}).get();
var selectvalues = [];
for(var i = 0; i < items.length; i++) {
for(key in items[i]) {
var id = key;
var text = items[i][key];
item = {}
item ["id"] = id;
item ["text"] = text;
selectvalues.push(item);
}
}
console.log(selectvalues);
copy(selectvalues);
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
以下は、選択したアイテムのすべての値、テキスト、または値、または選択したアイテムのテキストを取得するためのjqueryの簡単な例です
$('#nCS1 > option').each((index, obj) => {
console.log($(obj).val());
})
printOptionValues = () => {
$('#nCS1 > option').each((index, obj) => {
console.log($(obj).val());
})
}
printOptionTexts = () => {
$('#nCS1 > option').each((index, obj) => {
console.log($(obj).text());
})
}
printSelectedItemText = () => {
console.log($('#nCS1 option:selected').text());
}
printSelectedItemValue = () => {
console.log($('#nCS1 option:selected').val());
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select size="1" id="nCS1" name="nCS1" class="form-control" >
<option value="22">Australia</option>
<option value="23">Brunei</option>
<option value="33">Cambodia</option>
<option value="32">Canada</option>
<option value="27">Dubai</option>
<option value="28">Indonesia</option>
<option value="25">Malaysia</option>
</select>
<br/>
<input type='button' onclick='printOptionValues()' value='print option values' />
<br/>
<input type='button' onclick='printOptionTexts()' value='print option texts' />
<br/>
<input type='button' onclick='printSelectedItemText()' value='print selected option text'/>
<br/>
<input type='button' onclick='printSelectedItemValue()' value='print selected option value' />
$("input[type=checkbox][checked]").serializeArray();
または:
$(".some_class[type=checkbox][checked]").serializeArray();
結果を確認するには:
alert($("input[type=checkbox][checked]").serializeArray().toSource());
短い道
$(() => {
$('#myselect option').each((index, data) => {
console.log(data.attributes.value.value)
})})
または
export function GetSelectValues(id) {
const mData = document.getElementById(id);
let arry = [];
for (let index = 0; index < mData.children.length; index++) {
arry.push(mData.children[index].value);
}
return arry;}