javascript - 使用 jquery 分离/附加选择选项

标签 javascript jquery drop-down-menu

我正在尝试设置一个具有多个下拉列表的表单,这将允许访问者对列表项进行排名。表格示例:

<form action="" name="rankem">
  <select name="rank1" id="rank1">
    <option value="option1">Option 1</option>
    <option value="option2">Option 2</option>
    <option value="option3">Option 3</option>
    <option value="option4">Option 4</option>
    <option value="option5">Option 5</option>
  </select>
  <select name="rank2" id="rank2">
    <option value="option1">Option 1</option>
    <option value="option2">Option 2</option>
    <option value="option3">Option 3</option>
    <option value="option4">Option 4</option>
    <option value="option5">Option 5</option>
  </select>
  <select name="rank3" id="rank3">
    <option value="option1">Option 1</option>
    <option value="option2">Option 2</option>
    <option value="option3">Option 3</option>
    <option value="option4">Option 4</option>
    <option value="option5">Option 5</option>
  </select>
</form>

选择选项后,我想从每个下拉列表中删除(分离)它们。

我的实际列表包含更多选项,以便人们可以在 32 个选项中排名前 10 个,因此想象一下上面的示例代码有 10 个下拉列表,每个下拉列表有 32 个选项。

如果有人从 select#rank1 中选择“option2”,我希望从后续下拉列表中删除 option2,依此类推。如果他们返回 select#rank1,并将选择更改为“option4”,则需要将“option2”附加到所有下拉列表中。

我查看了 .detach() 和 .append() 但并不真正知道我在做什么。

$("option[value="+$(this).val()+"]").detach();

我尝试了上述方法来启动,但它只是从所有下拉列表中删除了该选项。我是一个 JS/jquery 菜鸟,所以任何帮助或正确方向的链接都值得赞赏。谢谢!

最佳答案

尝试使用此行(用于分离元素):

$("select:not(#"+$(this).parent().attr('id')+") option[value="+$(this).val()+"]").detach();

关于javascript - 使用 jquery 分离/附加选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3401734/

相关文章:

javascript - 为什么我在 React Native 中需要 redux?

jquery - 按钮文本在移动设备上旋转

jquery - 检查 .getJSON 是否返回任何数据

asp.net - 检索 RowUpdating 事件中的 DropDownList 值 asp.net

html - Bootstrap 4 下拉列表 - 自动宽度调整?

jquery - 在每次悬停时运行 jQuery slideDown

javascript - 如何在不创建闭包的情况下继承 promise 链中的数据?

javascript - 如何在 EJS 中执行 for 循环/foreach ?

javascript - 在自定义大小弹出窗口中打开任何链接的最佳轻量级不显眼解决方案是什么?

javascript - 没有显示 Ajax 附件的文件数据