2012-12-09 58 views
1

我有一個選擇,我試圖檢索當前選定選項的顯示值,我不是指平均值= 「」或.val() 讓說,這是我的選擇我如何獲得選定選項的值(如顯示的值不是值=「」)

<select id="name" > 
<option value="">select all</option> 
<option selected="selected" value="1">Text 1</option> 
<option value="2">Text 2</option> 
<option value="3">Text 3</option> 
</select> 

可以說我試圖檢索當前所選擇的選定值「文本1」

我已經試過

$('#name').text(); 

但是,這會返回所有4個選項的文本。

有沒有更好的方法?

回答

2

就這麼簡單:

$("#name > option:selected").text(); 

還是在純JavaScript:

var selEl = ​document.getElementById("name")​​, 
    selText = selEl.options[selEl.selectedIndex].innerHTML; 

console.log(selText); 
+0

注意問題標記爲jQuery。 –

+0

@JanDvorak那麼......? – VisioN

1
$('option:selected', '#name').text(); 
+1

@EliasVanOotegem - 意識到在幾秒鐘之內,改變它! – adeneo

+0

使用上下文選擇器實際上比使用後代選擇器更快速嗎? –

0

我想說$($('#name')[0].options[$('#name')[0].selectedIndex]).text();應該給你你想要的。至少,如果你放棄了.text位,它返回一個jQuery對象引用所選擇的選項節點

0

你需要操縱其.selectedIndex屬性是這樣的:

var node = document.getElementById('name'), val; 

node.onchange = function() { 

    val = this[ this.selectedIndex ].value; 

}; 

val將持有的元素的value那當前被選中。

1

大概你正在使用JQuery。你應該能夠做到:

$("#name").children("[selected]").text(); 
+0

您確定屬性選擇器會反映'selected'屬性,而不是初始狀態嗎? –

+0

剛剛嘗試過。似乎工作。 – Apropos

+0

你能提供一個小提琴嗎? –

相關問題