11

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

我有以下简单的代码。

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

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

var myOption = $('#myselect').val()

但是当我查看时,myOption我会看到“一”或“二”的文字?

4

5 回答 5

16

更新:添加 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());
});

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

于 2012-04-19T10:31:36.250 回答
7

我遇到了这个问题,因为 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>

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

于 2018-03-26T09:52:05.537 回答
5

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

对于选定的选项 Text :

$("#myselect option:selected").text(); 

对于选定的选项值:

$("select#myselect").val(); 
于 2012-04-19T10:23:24.873 回答
1

演示

$("#myselect").change(function() {
    alert(this.options[this.selectedIndex].value);
});
于 2012-04-19T10:36:26.190 回答
0

编辑

嗨呀

在这里工作演示:使用文本http://jsfiddle.net/QtjTq/3/ && 在此处使用 val http://jsfiddle.net/QtjTq/4/

像这样访问 text() - var myOption = $('#myselect option:selected').text() 访问值 - var myOption = $('#myselect option:selected').val()

详细说明:

如果您想访问value=属性,则为值.val()使用;

对于文本,如果您想获取文本,即使用api的one or two选定选项。... option:selected.text()

如果您想进一步阅读http://forum.jquery.com/topic/jquery-using-val-vs-text

希望这会有所帮助:) 干杯

var myOption = $('#myselect option:selected').text() //**or whatever suit you** 
var myOption = $('#myselect option:selected').val()


<select id="myselect">
   <option value="1">One</option>
   <option value="2">Two</option>
</select>
于 2012-04-19T10:22:11.190 回答