【发布时间】:2022-11-18 01:38:48
【问题描述】:
如果我有以下选择:
<select id="multi_select" multiple>
<option id="1" value="one">One</option>
<option id="2" value="two">Two</option>
<option id="3" value="three">Three</option>
<option id="4" value="four">Four</option>
<option id="5" value="five">Five</option>
</select>
如何获取单击的选项元素的 id?
如果我使用这个:
$("#multi_select").on('change', function () {
let id = this.options[this.selectedIndex].id;
});
它不起作用,因为它返回最上面的id。
在我的示例中,如果我单击选项一,然后按住 Shift 键单击选项二(选择多个),则 id 将是 1,因为它是选择最多的选项,但我只需要该选项的 id被点击的
编辑添加了 sn-p
$("#multi_select").on('change', function() {
let id = this.options[this.selectedIndex].id;
console.log(id);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="multi_select" multiple>
<option id="1" value="one">One</option>
<option id="2" value="two">Two</option>
<option id="3" value="three">Three</option>
<option id="4" value="four">Four</option>
<option id="5" value="five">Five</option>
</select>
【问题讨论】:
-
因此,您将需要遍历所有选项并查看它是否被选中。
-
@freedomn-m 确保你选择了多个,不仅仅是点击它们,还添加了更多选项
-
@B.DLiroy 是的,这应该是问题中的相关内容。 “单击选项二”不同于“按住 Shift 键单击选项 2”。
-
您需要使用
click事件或保留自上次change以来的值记录并进行比较。
标签: javascript jquery