我尝试过使用这两种方法,似乎都没有从下拉菜单中检索所选的值或文本。
我的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),而变量是全局的,不在任何函数内。
感谢您的帮助。
答案 0 :(得分:1)
试试这个:
获取选项的文字:
$( "#sessions option:selected" ).text();
获取选项的值:
$('select#sessions').val()
答案 1 :(得分:0)
您可以直接在val()
select
var selectedSession = $('#sessions').val();
你的第一个方法的问题是你混淆了jQuery和本机DOM方法,jQuery对象上没有options
或selectedIndex
属性,你必须这样做选择元素本身。例如$('#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>