当前位置:  开发笔记 > 编程语言 > 正文

如何使用jQuery获取select的所有选项?

如何解决《如何使用jQuery获取select的所有选项?》经验,为你挑选了9个好方法。

如何通过传递其ID来获取select jQuery的所有选项?

我只想获得他们的价值观,而不是文本.



1> ybo..:

使用:

$("#id option").each(function()
{
    // Add $(this).val() to your list
});

.each()| jQuery API文档


JavaScript操作都不需要jQuery.jQuery是简化JS操作的首选问题.
你也可以这样做:$("#id option").each(function(name,val){var opt = val.text;});
`$ .map`更优雅,更不容易出错(见下文).

2> KooiInc..:

我不知道jQuery,但我知道如果你得到select元素,它包含一个'options'对象.

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


+1.不要使用jQuery的复杂选择器魔法来处理已经在普通旧DOM中内置的非常有效的实现.
为什么不,@ bobince?如果你大多使用jQuery,那么用更少的代码编写它会更快,并且更快不去尝试找出你是否应该在这种情况下切换到常规javascript.而且您的代码更加一致.

3> PCasagrande..:

$.map 可能是最有效的方法.

var options = $('#selectBox option');

var values = $.map(options ,function(option) {
    return option.value;
});

$('#selectBox option:selected')如果只需要选择的选项,可以添加更改选项.

第一行选择所有复选框并将其jQuery元素放入变量中.然后我们使用.mapjQuery 的函数将函数应用于该变量的每个元素; 我们所做的就是返回每个元素的值,因为这就是我们所关心的.因为我们将它们返回到map函数内部,所以它实际上是按照请求构建了一个值数组.


这是IMO最优雅的解决方案.Map是一个非常强大的构造,完全符合这种情况.

4> cic..:

一些答案使用each,但map在这里是一个更好的选择恕我直言:

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

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

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


你实际上可以在这里使用this.value而不是$(this).val().通过在初始选择器中找到子项(#example选项),您也可以获得更好的服务.尽管如此,最好使用get().
@sbeam:"由于返回值是一个jQuery包装的数组,`get()`返回的对象与基本数组一起使用是很常见的." - http://api.jquery.com/map/

5> Raibaz..:
$('select#id').find('option').each(function() {
    alert($(this).val());
});



6> Ben Sewards..:
$("#id option").each(function()
{
    $(this).prop('selected', true);
});

虽然,CORRECT方法是设置元素的DOM属性,如下所示:

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


不是.attr('选中','选中')?

7> 小智..:

这会将选项值#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();});



8> Limpan..:

您可以通过复选框的名称获取所有"选定值",并将它们显示在以","分隔的标记中.

一个很好的方法是使用jQuery的$ .map():

var selected_val = $.map($("input[name='d_name']:checked"), function(a)
    {
        return a.value;
    }).join(',');

alert(selected_val);


还有一个问题是关于`select`和`option`而不是复选框.
这段代码非常难以理解,即使它有点酷也不会使用它.

9> Naveen Kumar..:

工作实例

最有效的方法是使用 $.map()

例:

var values = $.map($('#selectBox option'), function(ele) {
   return ele.value; 
});

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有