2012-12-09 57 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

你能提供一个小提琴吗? –

相关问题