jQuery - 循环选择多个选项的选项文本

时间:2014-06-28 16:54:21

标签: jquery each

我试图从多个选项中提取文本,我已经使用以下代码管理每个选项的值,但是当我使用.text()时,我会获得所有选项文本而不是选中的那个。

    $('#mySelects > .form-group select').each(function(){
            alert($(this).val());
    });

以下是HTML

的示例
    <div id="mySelects" class="panel-body">
        <div class="form-group">
           <select name="select-1" id="select-1" class="form-control">
         <option selected="selected" value="0">Please Select</option>
         <option value="11700599">Test Value 1</option>
           </select>
        </div>

        <div class="form-group">
           <select name="select-2" id="select-2" class="form-control">
         <option selected="selected" value="0">Please Select</option>
         <option value="11700467">Test Value 2</option>
           </select>
   </div>

我当前的jQuery将返回:0, 0 我希望它返回:"Please Select", "Please Select"(或选择的任何文本)

1 个答案:

答案 0 :(得分:5)

这是因为val()<select>元素上调用时,将返回所选子项<option>的value属性。但是,当您在.text()上调用$(this)时,您将获取整个<select>元素本身内的所有文本节点。所以,请改用它:

$('#mySelects > .form-group select').each(function(){
    var $optText = $(this).find('option:selected');
    alert($optText.text());
});

这是一个概念验证小提琴:http://jsfiddle.net/teddyrised/7vvX7/