2012-04-19 25 views
7

我需要从选择列表中获取值,但JQuery将返回select中选项的文本。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我得到的“一”或“二”的文本?

+1

你的问题是有点混乱。你说你想得到'1'或'2',但是你得到'one'和'two'来代替?如果是的话,我不能重现你的问题:http://jsfiddle.net/xmvFS/。确保你的'option'元素实际上具有'value'属性或提供演示。如果是反过来,你想获得文本,它是一个重复的http://stackoverflow.com/questions/196684/jquery-get-select-option-text – 2012-04-19 10:24:50

+0

是所有的代码?工作正常:http://jsfiddle.net/38F6F/ – Henry 2012-04-19 10:25:15

+0

是那个答案适合你? – 2012-04-19 10:29:55

回答

9

update:add 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/

+0

OP问如何获得价值而不是文字 – devnull69 2012-04-19 10:42:07

+0

抱歉。更新我的代码。 – GeckoTang 2012-04-19 11:12:33

0

编辑

你好

工作演示的位置:用文字http://jsfiddle.net/QtjTq/3/ & &使用VAL这里http://jsfiddle.net/QtjTq/4/

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

来阐述更多:

的价值,如果你想访问value=属性使用.val();如果你想获得文本即one or two然后用选择的选项... option:selected.text() API

文本

进一步,如果你想读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> 
2

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

对于所选择的选项文本:

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

对于选定的选项值:

$("select#myselect").val(); 
+0

@ devnull69 - 检查答案我写了如何获得价值和如何获得选定的选项的文本... – 2012-04-19 10:42:21

+5

这个问题似乎是“为什么'val()'返回文本”,我不知道如何这是回答。 – Henry 2012-04-19 10:43:37

0

Demo

$("#myselect").change(function() { 
    alert(this.options[this.selectedIndex].value); 
}); 
相关问题