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

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


当前回答

另一种方法是使用toArray(),以便使用胖箭头函数与map,例如:

const options = $('#myselect option').toArray().map(it => $(it).val())

其他回答

你可以使用以下代码:

var assignedRoleId = new Array();
$('#RolesListAssigned option').each(function(){
    assignedRoleId.push(this.value);
});

这是一种生成逗号分隔值列表的非常简单的方法。

var values = "";

$('#sel-box option').each(function () { 
   values = values + $(this).val() + ";";
});

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

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

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

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

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

如果您正在寻找一些选定文本的所有选项,那么下面的代码将工作。

$('#test').find("select option:contains('B')").filter(":selected");