JQuery检索文本而不是选择列表的值

Dev*_*and 8 javascript jquery

我需要从选择列表中获取值,但JQuery在select的选项中返回文本.

我有以下简单的代码.

<select id="myselect">
   <option selected="selected">All</option>
   <option value="1">One</option>
   <option value="2">Two</option>
</select>
Run Code Online (Sandbox Code Playgroud)

然后我使用下面的JQuery,我认为这会给我带来价值

var myOption = $('#myselect').val()
Run Code Online (Sandbox Code Playgroud)

但是当我看到myOption我得到'一个'或'两个'的文字?

Gec*_*ang 12

更新:添加val().

console.log($('#myselect').val());

// all option's value
$('#myselect').find('option').each(function(){
    console.log($(this).text());
    console.log($(this).val());
});

// change event
$('#myselect').change(function(){
    console.log($(this).find(':selected').text());
    console.log($(this).find(':selected').val());
});
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/yLj4k/3/


Pra*_*ana 7

获取文本值最简单的方法是

对于所选选项文本:

$("#myselect option:selected").text(); 
Run Code Online (Sandbox Code Playgroud)

对于选定的选项值:

$("select#myselect").val(); 
Run Code Online (Sandbox Code Playgroud)

  • 问题似乎是“为什么`val()`返回文本”,我不确定如何回答。 (6认同)

Hug*_*ing 5

我遇到了这个问题,因为 jQueryVal()函数在我的脑海中,我实际上将选项定义<option val='xx'><option value='xx'>. 这就是导致问题的原因。请参阅此更新的jsfiddle

<select id="myselect">
   <option value="1">One</option>
   <option value="2">Two</option>
</select>

<select id="myselect2">
   <option val="1">One</option>
   <option val="2">Two</option>
</select>

<script>
$('select').change(function() {
    alert($(this).val());
});
</script>
Run Code Online (Sandbox Code Playgroud)

第一个select将警告“1”或“2”,第二个select将警告“一”或“二”。