2012-04-19 24 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); 
}); 
相關問題