jQuery找不到select =" select"

时间:2015-10-27 11:57:33

标签: javascript jquery html5

如何使用jQueryowner获取所有选定的选项?

<select>

我试过了<select id="mySelector" ... > <option value="1" selected="selected">option1</option> <option value="2" selected="selected">option2</option> <option value="3">option3</option> </select> 。它返回$('#mySelector').find(":selected")

但如果我的选项仅包含[]属性而不是selected selected="selected",则会返回正确的结果。

我做错了吗?

3 个答案:

答案 0 :(得分:1)

属性属性之间没有什么区别。

  1. 属性确实已分配了attr="value"
  2. 等值
  3. 虽然属性只是一个没有分配任何值的属性,如checked, selected etc.
  4. 所以为了回答你的问题,我会说你必须使用.map()次迭代来创建数组:

    var arr = $('#mySelector option').map(function(){
        return $(this).attr('selected') === "selected"    
    }).get();
    

答案 1 :(得分:1)

设置属性selected="selected"将作为预先选择的选项,并将首先显示在下拉列表中。

但是,我想用户会选择一些东西,并希望获得该值。

$('select option:selected').each(function () {
    alert($(this).val());
});

遍历select元素中的每一个,并使用伪选择器:selected来获取它的值。

JsFiddle demo

  

注意:如果您想要的是文字,而不是价值,请使用.text()代替.val()

答案 2 :(得分:1)

你可以一个接一个地尝试:

$('#mySelector').find(":selected")//animate...
$('#mySelector').each(function(){
    if ($(this).attr('selected') === "selected"){
        //animate...
    }
}