【问题标题】:jQuery after selecting from a dropdown remove the same line from other dropdowns on the page从下拉列表中选择后的jQuery从页面上的其他下拉列表中删除同一行
【发布时间】:2011-01-28 15:16:28
【问题描述】:

是否可以从所有下拉菜单中删除项目,除了我从中选择的项目?

我从我的 PHP 代码中自动生成下拉列表,为每个参与者创建一个下拉列表。下拉列表的目的是给每个参与者一个数字,以查看谁最强(1)和最弱(例如 4,取决于参与者的数量)。

现在我们得到了以下内容;

John -- 这里从 1 到 4 的下拉列表 --

Jeniffer -- 这里从 1 到 4 的下拉菜单 --

Lloyd -- 这里从 1 到 4 的下拉菜单 --

Julian -- 这里从 1 到 4 下拉 --

我的目标是,当我从 John 的下拉列表中选择“1”时,“1”会从其他人的下拉列表中消失(因此剩下的选项只有 2、3 和 4)。

谢谢

【问题讨论】:

  • 说下拉是指<select><options>'s ?
  • 是的,对不起。带有选项的选择。

标签: jquery select drop-down-menu


【解决方案1】:

您可以使用.not 排除触发事件的元素。比如:

$('select').change(function() {
    $('select').not(this).children('option[value=' + $(this).val() + ']').remove();
});

最好为select 元素提供自己的类。

DEMO

但是,如果用户更改了他的选择,您还必须确保再次添加一个选项。在最坏的情况下,如果用户设置了所有选项,则用户无法再更改选择,因为没有可供选择的内容。考虑一下这种情况。

【讨论】:

  • @Roel 而不是删除,也许尝试禁用和启用。以防他们改变选择。
  • 谢谢,但是否可以不完全从下拉列表中删除该项目?我可以添加一个禁用的属性,但是在选择不同的项目后如何再次启用它?
【解决方案2】:

如果是selectoptions

$('option').click(function(){
    $('option:contains(' + $(this).html() +')').not(this).remove();
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    相关资源
    最近更新 更多