jQuery检索选择选项值

时间:2014-04-13 04:07:34

标签: javascript jquery jquery-selectors

我尝试过使用这两种方法,似乎都没有从下拉菜单中检索所选的值或文本。

我的HTML:

<select id="sessions">
  <option value="0">Choose a Session</option>
  <option value="Awesome">Awesome</option>
  <option value="test1">test1</option>
  <option value="testing">testing</option>
</select>

第一种方法:

var selectedSession = $('#sessions').options[$('#sessions').selectedIndex].val();

由于我得到一个未定义的值,因此甚至无法识别。

第二种方法:

var selectedSession = $('#sessions').find(":selected").text();

返回字符串“”。一片空白。我尝试了val()和text()。是的,我知道两者之间的区别。

编辑:

尝试了所有这些方法但没有成功:

var selectedSession = $('#sessions :selected').text();
var selectedSession = $('#sessions').val();
var selectedSession = $('#sessions option:selected').text();
var selectedSession = $('select#sessions').val();
var selectedSession = $('#sessions')[0].options[$('#sessions')[0].selectedIndex].val();
var selectedSession = document.getElementById("sessions").text(); Returns null

另外,澄清一下,javascript在外部文档中(例如external.js),而变量是全局的,不在任何函数内。

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

试试这个:

获取选项的文字

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

获取选项的

$('select#sessions').val()

答案 1 :(得分:0)

您可以直接在val()

上致电select
var selectedSession = $('#sessions').val();

你的第一个方法的问题是你混淆了jQuery和本机DOM方法,jQuery对象上没有optionsselectedIndex属性,你必须这样做选择元素本身。例如$('#sessions')[0].options$('#sessions')[0].selectedIndex

答案 2 :(得分:0)

尝试使用$(&#39;选择#sessions&#39;)。val()

Here val is the value of the property
Here text is the value of the property.


Sample:
For val is '0', text is 'Choose a Session'
For val is 'Awesome' , text is Awesome.


Value represents option value
text represent the value between the tags. 


<select id="sessions">
  <option value="0">Choose a Session</option>
  <option value="Awesome">Awesome</option>
  <option value="test1">test1</option>
  <option value="testing">testing</option>
</select>