我如何通过jQuery传递它的ID来获得一个选择的所有选项?
我只是想获取它们的值,而不是文本。
我如何通过jQuery传递它的ID来获得一个选择的所有选项?
我只是想获取它们的值,而不是文本。
当前回答
没有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>
其他回答
$("input[type=checkbox][checked]").serializeArray();
Or:
$(".some_class[type=checkbox][checked]").serializeArray();
看看结果:
alert($("input[type=checkbox][checked]").serializeArray().toSource());
这将把#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())
工作示例
最有效的方法是使用$.map()
例子:
var values = $.map($('#selectBox option'), function(ele) {
return ele.value;
});
这是一种生成逗号分隔值列表的非常简单的方法。
var values = "";
$('#sel-box option').each(function () {
values = values + $(this).val() + ";";
});
$("#id option").each(function()
{
$(this).prop('selected', true);
});
不过,正确的方法是设置元素的DOM属性,如下所示:
$("#id option").each(function(){
$(this).attr('selected', true);
});