jquery - 从下拉菜单中找出点击的选项
问题描述
我有一个下拉菜单,其中一些选项被选中,一些选项没有被选中。当我单击任何选项时,我想找到该特定选项并检查它是否被选中。
这就是我现在所做的:
HTML 代码:
<select class="ss-select" data-dropup-auto="false" id="ss_options" multiple="multiple" name="ss">
<option selected="selected" value="1">One</option>
<option value="2">Two</option>
<option selected="selected" value="3">Three</option>
<option value="4">Four</option>
<option selected="selected" value="5">Five</option>
</select>
这是 jQuery 代码:
$("#ss_options").change(function(){
$('#ss_options').find('option').not(':selected').each(function(k,v){
console.log(k,v.text, v.value);
});
$('#ss_options option:selected').each(function(k,v){
console.log(k,v.text, v.value);
});
});
现在,每次发生更改事件时,我都会遍历所有选定和未选定选项的列表。理想情况下,我只想处理选中或未选中的元素。
解决方案
现在,每次发生更改事件时,我都会遍历所有选定和未选定选项的列表。理想情况下,我只想处理选中或未选中的元素。
要以跨浏览器的方式执行此操作,您需要记住先前选择了哪些元素,然后使用该信息来确定在“此”更改时选择了哪个元素。那是因为某些浏览器(我认为是 Safari)不提供click
有关option
元素的change
事件,仅提供select
. 您无法从change
事件中分辨出更改与哪个特定选项相关。
当然,在支持click
on 选项的click
浏览器上,您可以监听option
元素,但同样不能跨浏览器。
推荐阅读
- python - 存储和重用 tsfresh 执行的特征工程
- javascript - 每次调整窗口大小时如何在 JavaScript 中调用或运行函数?
- android - 将 Dagger 与 Espresso 搭配使用
- c++ - Digi spark 输入键盘错误
- php - 将 css 类添加到 PHP 日历中的特定(开始)日期
- python - 使用 to_pydatetime() 在日期和月份之前添加“0”
- timestamp - 在 Snowflow 中格式化时间戳 ntz 以输出为日期时间 YYYY-MM-DDTHH:MMZ
- java - 如何将传输流 PTS 与 MediaSync 一起使用?
- arrays - 通过使用可能的数组在 awk 中以困难模式分析两列来计数
- javascript - Cypress 元素不可见,因为它的有效宽度和高度为 0 x 0 像素