jQuery 删除除当前选项之外的选项

标签 jquery

我有 4 个选择框,每个都包含完全相同的数据:

  • 骑马
  • 钓鱼
  • 吸烟
  • 飞行

如果我在选择框 [0] 中并选择“骑行”,我想从剩余的每个选项中删除该选项,除了当前处于事件状态的选择框之外。

我尝试过 select:not(:first-child) 但这只会删除,只有第一个 child 是选择,而不是其他 child 。

基本上,我需要从所有下拉列表中删除选定的选项,除了我选择的选项之外。

最佳答案

试试这个:

$('#select1').on('change', function() {
    var val = this.value;
    $('select').not(this).children().filter(function() {
        return this.value === val;
    }).remove();
});

即对于每个 <select>not this ,得到其children ,但是filter那些 .value和我的不一样,并且remove他们。

工作演示位于 http://jsfiddle.net/alnitak/CJYWn/

如果您需要在第一个条目更改为其他内容时重新添加元素,您可以考虑克隆整个第一个 select同时过滤掉不需要的项目。

在这种情况下,过滤器需要 !== ,因为我们想要除匹配的元素之外的所有元素,即

$('#select1').on('change', function() {
    var val = this.value;
    $('select').not(this).empty().append($(this).children().filter(function() {
        return this.value !== val;
    }).clone());
});

工作演示位于 http://jsfiddle.net/alnitak/ARUmX/

关于jQuery 删除除当前选项之外的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9112112/

相关文章:

asp.net-mvc - Asp.net Mvc jquery ajax?

javascript - Jquery:有什么方法可以让 val() 返回空字符串而不是空列表的 'undefined'?

javascript - 如何获取img元素

javascript - 为什么我的 jQuery 脚本无法加载?

jQuery:同时发出ajax请求,可能吗?

jquery - 使用 CSS 的导航栏高度过渡

javascript - 构建计算器时遇到困难

javascript - 使用 jquery 将不同的类添加到列表项父级

Jquery查找具有特定属性值的特定类

php - Wordpress REST API 自定义帖子类型 禁止删除访问