获取下拉选框选中选项文本报错:TypeError: selectobject.selected is undefined
解决jQuery获取下拉选框选中文本的错误问题
嘿,这个报错我太熟了!咱们来一步步捋清楚问题出在哪,以及怎么修复它。
错误原因
你写的selectobject是一个jQuery包装后的对象,而不是原生的DOM select元素,所以它根本没有selected这个属性——这就是为什么会抛出TypeError: selectobject.selected is undefined的原因。
修复方案(两种常用方法)
方法1:用jQuery的:selected选择器(推荐)
直接通过jQuery的选择器定位到选中的选项,然后调用text()方法获取文本:
var selectobject = $("select[id*='ResponsibilitySubCategory']"); var currentsubcat = selectobject.find(":selected").text();
或者更简洁的链式写法:
var currentsubcat = $("select[id*='ResponsibilitySubCategory'] :selected").text();
方法2:转成原生DOM元素再操作
如果你习惯用原生JS的方式,也可以把jQuery对象转成原生DOM元素,然后用原生属性获取文本:
// 用[0]或者.get(0)获取第一个匹配的原生DOM元素 var selectElement = $("select[id*='ResponsibilitySubCategory']")[0]; // 方式A:用selectedOptions var currentsubcat = selectElement.selectedOptions[0].text; // 方式B:用selectedIndex var currentsubcat = selectElement.options[selectElement.selectedIndex].text;
小提醒
以后遇到类似问题要记住:jQuery对象是原生DOM元素的包装集合,不能直接使用原生DOM的属性和方法,要么用jQuery提供的API,要么转成原生元素再操作~
内容的提问来源于stack exchange,提问作者John John
相关产品推荐
相关产品推荐

