我正在尝试从下拉值中获取选定的值,以提醒它显示
未捕获的TypeError:无法读取未定义的属性“文本”
谁能帮我?
var selectedObj = document.getElementById('selectedOption');
alert("selectedObj--->"+selectedObj);
var selectedOptionText = selectedObj.options[selectedObj.selectedIndex].text;
最佳答案
selectedIndex
技术细节
返回值:一个数字,表示索引
下拉列表中选择的选项。索引从0开始。
未选择任何选项,返回值为-1
因此,如果未选择任何选项,则最终得到selectedObj.options[-1]
,该值将始终为undefined
。
因此,您可以执行以下操作:
var selectedOptionText = selectedObj.selectedIndex > -1 ? selectedObj.options[selectedObj.selectedIndex].text : null;
如果您希望
selectedOptionText
为空(如果未选择任何选项)。要么
var selectedIndex = selectedObj.selectedIndex;
if (selectedIndex === -1) selectedIndex = 0;
var selectedOptionText = selectedObj.options[selectedIndex].text;
如果希望
selectedOptionText
等于select的第一个选项(如果未选择任何选项)。