我正在尝试从下拉值中获取选定的值,以提醒它显示


  未捕获的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的第一个选项(如果未选择任何选项)。

09-25 17:56