我如何通过jQuery传递它的ID来获得一个选择的所有选项?

我只是想获取它们的值,而不是文本。


当前回答

这将把#myselectbox的选项值放入一个整洁的数组中:

// First, get the elements into a list
var options = $('#myselectbox option');

// Next, translate that into an array of just the values
var values = $.map(options, e => $(e).val())

其他回答

有些答案使用这两种方法,但恕我直言,地图是更好的选择:

$("select#example option").map(function() {return $(this).val();}).get();

jQuery中有(至少)两个地图函数。Thomas Petersen的答案是“Utilities/jQuery.map”;这个答案使用了“遍历/映射”(因此代码更简洁)。

这取决于你要如何处理这些值。如果你想从函数中返回值,map可能是更好的选择。但是,如果您打算直接使用这些值,则可能需要每个值。

这是一个简单的例子在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' />

$("#id option").each(function()
{
    $(this).prop('selected', true);
});

不过,正确的方法是设置元素的DOM属性,如下所示:

$("#id option").each(function(){
    $(this).attr('selected', true);
});
    var arr = [], option='';
$('select#idunit').find('option').each(function(index) {
arr.push ([$(this).val(),$(this).text()]);
//option = '<option '+ ((result[0].idunit==arr[index][0])?'selected':'') +'  value="'+arr[index][0]+'">'+arr[index][1]+'</option>';
            });
console.log(arr);
//$('select#idunit').empty();
//$('select#idunit').html(option);

这是一个简单的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>