Javascript 未捕获类型错误:无法读取属性';文本';用于在java脚本中获取选定值的未定义值

Javascript 未捕获类型错误:无法读取属性';文本';用于在java脚本中获取选定值的未定义值,javascript,html,css,dom,Javascript,Html,Css,Dom,我正在尝试从下拉列表中获取所选值,该值显示为警报 未捕获的TypeError:无法读取未定义的属性“text” 有人能帮我吗 var selectedObj = document.getElementById('selectedOption'); alert("selectedObj--->"+selectedObj); var selectedOptionText = selectedObj.options[selectedObj.selectedIndex].text; 选择的索

我正在尝试从下拉列表中获取所选值,该值显示为警报

未捕获的TypeError:无法读取未定义的属性“text”

有人能帮我吗

var selectedObj = document.getElementById('selectedOption');

alert("selectedObj--->"+selectedObj);

var selectedOptionText = selectedObj.options[selectedObj.selectedIndex].text;
选择的索引

技术细节

返回值:一个数字,表示 下拉列表中的选定选项。索引从0开始。如果 未选择任何选项,返回的值为-1

因此,如果没有选择任何选项,您将得到
selectedObj.options[-1]
,它将始终是
未定义的

所以你可以做:

var selectedOptionText = selectedObj.selectedIndex > -1 ? selectedObj.options[selectedObj.selectedIndex].text : null;
如果希望
selectedOptionText
在未选择任何选项时为空


如果您希望
selectedOptionText
与未选择选项时选择的第一个选项相等。

您希望“selectedObj”是什么?HTML选项元素还是选择元素?这在代码中是不明确的

selectedObj.options
意味着它是select元素

selectedObj.selectedIndex
但是

暗示这是一个HTML选项元素

您需要检查:

console.log(selectedObj.tagName)

注意:使用console.log()比alert()更容易调试

selectedObj.options[selectedObj.selectedIndex]未定义,这就是您出现错误的原因。请记录selectedObj.selectedIndex,并检查它是否在您的数组中是可接受的值Try this
$(“#SelectedOptions:selected”).text()的可能副本您好,您能看到这个链接吗?这样,当我像console.log(“selectedObj=”+selectedObj.tagName)一样编写时,您就可以理解我正在进入控制台了;o/p:selectedObj=selected仍然我得到了相同的错误,未捕获类型错误:无法读取未定义的属性“text”,实际上我得到的是selectedObj=SELECT。我得到的索引值总是-1,为什么?很可能是在
var selectedIndex=selectedObj.selectedIndex语句,您的选择为空,请参见
var selectedObj = document.getElementById('selectedOption');
console.log(selectedObj.tagName)