首页 > 解决方案 > 从下拉菜单中找出点击的选项

问题描述

我有一个下拉菜单,其中一些选项被选中,一些选项没有被选中。当我单击任何选项时,我想找到该特定选项并检查它是否被选中。

这就是我现在所做的:

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);
    });
});

现在,每次发生更改事件时,我都会遍历所有选定和未选定选项的列表。理想情况下,我只想处理选中或未选中的元素。

标签: jquery

解决方案


现在,每次发生更改事件时,我都会遍历所有选定和未选定选项的列表。理想情况下,我只想处理选中或未选中的元素。

要以跨浏览器的方式执行此操作,您需要记住先前选择了哪些元素,然后使用该信息来确定在“此”更改时选择了哪个元素。那是因为某些浏览器(我认为是 Safari)不提供click有关option元素的change事件,仅提供select. 您无法从change事件中分辨出更改与哪个特定选项相关。

当然,在支持clickon 选项click浏览器上,您可以监听option元素,但同样不能跨浏览器。


推荐阅读