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

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


当前回答

您可以根据复选框的名称获取所有“选定值”,并将它们显示在以“,”分隔的字符串中。

一个很好的方法是使用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; 
});
$("input[type=checkbox][checked]").serializeArray();

Or:

$(".some_class[type=checkbox][checked]").serializeArray();

看看结果:

alert($("input[type=checkbox][checked]").serializeArray().toSource());

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

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

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

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

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

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

没有jQuery 我知道HTMLSelectElement元素包含一个选项属性,这是一个htmlloptionscollection。

const myOpts = document.getElementById('yourselect').options;
console.log(myOpts[0].value) //=> Value of the first option

一个12岁的答案。让我们对它进行一些改进(使用. queryselectorall,将结果HTMLOptionsCollection扩展到Array并映射值)。

// helper to retrieve an array of elements using a css selector const nodes = selector => [...document.querySelectorAll(selector)]; const results = { pojs: nodes(`#demo option`).map(o => o.value), jq: $(`#demo option`).toArray().map( o => o.value ), } console.log( `pojs: [${results.pojs.slice(0, 5)}]` ); console.log( `jq: [${results.jq.slice(0, 5)}]` ); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <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>