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

如何获取多个select列表选中项的value与data-id属性值?

解决select选中项的value与data-id获取问题

问题根源

你用了箭头函数作为change事件的回调,箭头函数没有独立的this上下文,导致$(this)无法指向触发事件的select元素,自然拿不到选中项的值。

修正方案1:改用普通函数

把箭头函数换成普通函数,此时this会正确指向当前触发change事件的select:

$(document).on("change", ".sectionSelect", function() {
    // 获取选中option的value
    let section_id = $(this).val();
    // 获取选中option的data-id属性
    let room_id = $(this).find(":selected").data("id");
    console.log(section_id);
    console.log(room_id);
});

修正方案2:使用事件对象的target属性

如果坚持用箭头函数,可以通过事件参数event的target属性获取触发元素:

$(document).on("change", ".sectionSelect", (event) => {
    const $select = $(event.target);
    let section_id = $select.val();
    let room_id = $select.find(":selected").data("id");
    console.log(section_id);
    console.log(room_id);
});

补充说明

  • 获取select的选中值可以直接用$(select元素).val(),不需要额外查找子元素,写法更简洁。
  • 获取data属性时,用.data("id")比.attr("data-id")更符合jQuery的data API规范,它会自动处理数据类型转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:25:15