You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

带optgroup的select使用jQuery获取选中元素返回undefined求助

问题解决方法

你的问题出在children()方法的使用上——它只会查找直接子元素,而带optgroup的结构里,option是optgroup的子元素,不是select的直接子元素,所以$('#wlistid').children('option:selected')根本找不到目标元素,自然返回undefined。

给你两种简单的解决方式:

方式一:直接用select的val()方法(最简便)

select元素本身的val()方法会直接返回选中option的value值,不管有没有optgroup嵌套,直接用这个就行:

$('select[name=wlistid]').on('change', function() {
    var listid = $(this).val(); // 用$(this)更高效,无需重新查询DOM
    alert('ID ' + listid);
});

方式二:用find()代替children()

如果确实需要获取选中的option元素,可以用find()方法(它会查找所有后代元素):

$('select[name=wlistid]').on('change', function() {
    var listid = $(this).find('option:selected').val();
    alert('ID ' + listid);
});

另外提醒下,你AJAX加载选项的代码有个小语法错误——{'ajaxcall':'getOptions')的括号不匹配,应该改成{'ajaxcall':'getOptions'},避免后续加载出问题。

内容的提问来源于stack exchange,提问作者Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:55:18