使用 jQuery 从一组选择菜单中删除和添加选项

2024-01-10

这比标题所描述的要复杂一些,但以下是基本的业务规则:

  1. 上面有三个选择菜单 页面,每个页面都填充相同的内容 选项和值。
  2. 总会有三个选择 菜单。
  3. 总会有相同的数字 每个选择中的选项/值 菜单。
  4. 在任一问题中选择一个问题 菜单将删除该问题作为选项 另外两个菜单。
  5. 重新选择一个不同的问题 从任何菜单中都会带来 回到那个问题 之前从另一个中删除 两个菜单位于之前的索引处。

我已经尝试了几种不同的方法,但令我烦恼的是数字 5。我知道它不会插入到确切的索引处,因为某些问题可能已被删除,这会重新排序索引。它基本上需要一个 insertBefore 或 insertAfter 将其放入同一个“槽”中。

即使您不发布任何代码,关于如何处理此问题的一些想法也会非常有帮助。选择菜单和 jQuery 看起来像这样,但我已经在不同的变体中进行了多次尝试:

jQuery:

$(function() {
    $(".questions").change(function() {
        var t = this;
        var s = $(t).find(":selected");

        // Remove, but no "insert previously selected" yet...

        $(".questions").each(function(i) {
            if (t != this) {
                $(this).find("option[value=" + s.val() + "]").remove();
            }
        });
    });
});

HTML:

<select name="select1" class="questions">
    <option value="1">Please select an option...</option>
    <option value="2">What is your favorite color?</option>
    <option value="3">What is your pet's name?</option>
    <option value="4">How old are you?</option>
</select>
<select name="select2" class="questions">
    <option value="1">Please select an option...</option>
    <option value="2">What is your favorite color?</option>
    <option value="3">What is your pet's name?</option>
    <option value="4">How old are you?</option>
</select>
<select name="select3" class="questions">
    <option value="1">Please select an option...</option>
    <option value="2">What is your favorite color?</option>
    <option value="3">What is your pet's name?</option>
    <option value="4">How old are you?</option>
</select>

不要删除元素,而是隐藏它们。删除后,您会给自己带来更多不必要的问题。这对我有用:

$(function() {
    $('select.questions').change(function() {            
        var hidden = [];
        // Get the values that should be hidden
        $('select.questions').each(function() {
            var val = $(this).find('option:selected').val();
            if(val > 0) {
                hidden.push($(this).find('option:selected').val());
            }
        });
        // Show all options...          
        $('select.questions option').show().removeAttr('disabled');            
        // ...and hide those that should be invisible
        for(var i in hidden) {
            // Note the not(':selected'); we don't want to hide the option from where
            // it's active. The hidden option should also be disabled to prevent it
            // from submitting accidentally (just in case).
            $('select.questions option[value='+hidden[i]+']')
                .not(':selected')
                .hide()
                .attr('disabled', 'disabled');
        }
    });
});

我还对您的 HTML 做了一个小更改,我用 0 值表示了一个应该始终可见的选项。因此有效选项从 1 到 3。

这是一个有效的例子,如果我误解了你,请告诉我:

http://www.ulmanen.fi/stuff/selecthide.php http://www.ulmanen.fi/stuff/selecthide.php

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 jQuery 从一组选择菜单中删除和添加选项 的相关文章

  • 解释一下这个令人困惑的 dojo 教程声明语法

    我正在阅读使用的语法道场的声明 http dojotoolkit org documentation tutorials 1 8 declare 用于班级创建 描述很混乱 The declare function is defined in
  • 仅从功能区打开一个对话框

    我有一个带有登录按钮的功能区 可打开登录对话框 我想将对话框的数量限制为一个 我正在使用函数 displayDialogAsync startAddress options callback https learn microsoft co
  • IE提示打开或保存服务器的json结果

    兼容模式下的Internet Explorer通过ajax回调方法从服务器获取数据 如果我想保存数据或打开数据 会弹出一个对话框 如何摆脱它 客户说 ajax type POST data UIdlgHolder gt form seria
  • jQuery 模板:使用 AND 运算符创建条件语句

    这有效
  • 如何使用 github 托管外部 CSS 文件?

    我将 css 上传到 github 然后转到网站上的文件并单击 raw 选项 我尝试将其添加到网页中 但 chrome 给出以下错误 资源解释为样式表 但使用 MIME 类型 text plain 进行传输 https raw github
  • 公开闭包内的方法

    当我们在闭包内创建一个方法时 该方法将成为该闭包的私有方法 并且在我们以某种方式公开它之前无法访问它 怎么可能暴露呢 您可以返回对它的引用 var a function var b function I m private alert go
  • NodeJS - 将相对路径转换为绝对路径

    In my 文件系统我的工作目录在这里 C temp a b c d 在 b bb 下有文件 tmp txt C temp a b bb tmp txt 如果我想从工作目录转到该文件 我将使用以下路径 bb tmp txt 如果该文件不存在
  • 如何将React JS状态保存到本地存储中

    我不知道如何将 React js 状态存储到本地存储中 import React Component from react import App css import auth createUserProfileDocument from
  • 如何在数据表角度中基于 JSON 动态填充表值?

    我在用着Angular 数据表 https l lin github io angular datatables 我需要能够根据返回的数据动态创建表 换句话说 我不想指定列标题 Example json数据 id 2 city Baltim
  • select2 验证 - 选择至少一个值

    我在用select2 http ivaynberg github io select2 and jQuery 验证 http jqueryvalidation org 插件 select2 的 HTML div class form gro
  • 当rest api应用程序服务器(express)和Angulars js应用程序在不同端口上运行时出现Cors问题

    我有用node js编写的rest api应用程序 express在端口3000上运行 而angularjs应用程序在同一服务器上的端口9001上运行 从 angularjs 应用程序调用 rst api 时 出现了 cors 问题 在re
  • “$(document).ready”函数的替代方案

    我在 aspx 页面中使用 fancybox 对于灯箱 文档就绪功能在此页面中不起作用 有人告诉我编写一个新的 JavaScript 代码来加载该页面中的灯箱 包括 jQuery 检查网络选项卡 确保您没有收到 404 检查控制台是否没有收
  • 如何让php页面从html页面接收ajax post

    我有一个非常简单的表单 其中有一个名字输入字段 我捕获了表单数据 并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面 但是 我根本无法从 PHP 页面获得任何在服务器端捕获数据的响应 我不确定我做错了什么或缺少什么
  • 使用 jQuery 从 ASP.Net JSON 服务获取数据

    我正在尝试调用 Google 地图地理编码 API 从纬度 经度对中获取格式化的地址 然后将其记录到控制台 我正在尝试获取为给定位置返回的第一个 formatted address 项目 我很简单无法从 JSON 中提取该项目 我不知道为什
  • D3 强制布局,较大的节点聚集在中心

    我一直在修改将用于标签云的强制布局 每个标签都由一个
  • jQuery:向左滑动和向右滑动

    我见过slideUp and slideDown在 jQuery 中 左右滑动的功能 方式怎么样 您可以使用 jQuery UI 中的附加效果来做到这一点 详情请参阅此处 http docs jquery com UI Effects Sl
  • 如何计算一行中Flexbox项目的数量?

    网格是使用 CSS flexbox 实现的 Example http jsbin com jumosicasi edit html css js output 本示例中的行数为 4 因为我出于演示目的固定了容器宽度 但是 实际上 它可以根据
  • 如何得知客户端从服务器的下载速度?

    根据客户的下载速度 我想以低质量或高质量显示视频 任何 Javascript 或 C 解决方案都是可以接受的 Thanks 没有任何办法可以确定 您只能测量向客户端发送数据的速度 如果没有来自客户端的任何类型的输入来表明其获取信息的速度 您
  • YouTube 点击时禁用 HTML5

    有没有办法让我们通过javascript禁用HTML5视频的 播放 暂停 点击全屏 功能 然后在我们再次需要时将其放回去 我不知道你是否可以禁用它们 但你可以使用 css 删除它们 video webkit media controls f
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att

随机推荐

  • 为什么无法在组合框中选择空值?

    在 WPF 中 似乎不可能从组合框中选择 使用鼠标 空 值 Edit澄清一下 这是 NET 3 5 SP1 这是一些代码来说明我的意思 首先 C 声明 public class Foo public Bar Bar get set publ
  • 使用别名更改默认 python 版本

    我想知道是否使用alias在终端中更改默认的Python版本对脚本中Python的后续调用有积极的影响吗 例如 我使用 alias python python36 run program 现在假设 run program 是一个调用多个嵌套
  • Scala - 动态类加载 - A 类无法转换为 A 类

    我有一个包含类的简单 jar 文件A public class A 然后我在运行时加载它 var classLoader new URLClassLoader Array my jar file toURI toURL var clazz
  • 如何用另一个 CSS 覆盖 CSS 中定义的背景图像?

    我有一个 Core css 它定义了网站的页面背景图像以及主题 但对于特定页面 我只想更改背景 关于如何在单独的 CSS 文件中实现这一点有什么建议吗 该页面的 HTML 是 core css 定义 body background imag
  • 当 UIView 变得可见时,如何收到通知?

    每当 UIView 对用户可见时 即当 UIScrollview 是某些 UIView 的超级视图时 是否有一种方法可以获取通知 回调或其他方式来调用方法 并且此类 UIView 的 ViewController 应在以下情况下收到通知 它
  • 根据用户输入将单词中的字母加粗

    我的应用程序中有一个搜索组件 当用户输入一些文本时 它会根据用户输入过滤数据并显示过滤数据的列表 我想要做的是将用户搜索的文本在过滤后的数据中加粗 例如 如果我搜索 Jo 过滤后的数据应显示为John Joseph Joe Rogan 我可
  • 爆炸函数后将值添加到一个数组

    我正在尝试从所有行获取所有路径并将它们 爆炸后 添加到一个数组中 以便将它们显示为复选框 这是我的代码 result mysql query select path from audit where ind ind exp array wh
  • SPOJ ADDREV 问题

    我确实浏览了其他线程SPOJ http en wikipedia org wiki SPOJ问题 ADDREV https www spoj pl problems ADDREV 添加反转数字 但遗憾的是 我无法通过我编写的三个程序 C P
  • 即使我调用 componentHandler.upgradeDom(),汉堡包图标也不会显示;

  • 测试替身有哪些不同类型及其用途?

    我正在学习有关测试驱动开发的在线课程 并遇到了测试替身的概念 根据课程中测试替身的定义 测试双打 测试替身是在单元测试中用于替代实际生产系统协作者的对象 我知道测试双打是什么意思了 但后来有人提到 测试替身有多种类型 课程中提到的内容是 D
  • 将日期向量转换为 R 中的儒略日

    我有一列格式如下的日期 10年6月16日 我想提取儒略日 我有不同的岁月 我尝试过 julian 和 mdy date 函数 但似乎不起作用 尝试以下方法从类转换character 即文本 到课堂POSIXlt 然后提取儒略日 yday t
  • glDeleteBuffers() 在析构函数调用期间崩溃

    正如 Qt 用户所知 使用任何 OpenGL 扩展都可能非常麻烦 我让它工作的方法是扩展 QGLFunctions 类 如下所示 class Object3D protected QGLFunctions 为了使 Object3D 能够正确
  • 任务管理器、ProcessExplorer 或类似工具:监视和管理 CLR 线程

    有没有一种工具可以查看托管线程在 CLR 中运行的情况 理想情况下 我希望看到 CPU 负载 状态 托管名称和托管 id 即使该线程属于线程池 或者是后台线程 它将能够对线程池 前台线程和后台线程进行分组 折叠 动机 我正在使用 CLR P
  • 未生成 iOS 的 Xcode 6.1 静态库 .a

    我尝试使用 Xcode 6 1 为我的 iOS 设备制作静态库 我在 Xcode 上选择一个带有模板 Cocoa Touch Static Library 的新项目并将其命名为 MyLib 对于 MyLib 目标 我在模拟器中选择 iPho
  • 在 kotlin js 中嵌入资源

    在 kotlin jvm 中 或者在 java 中 不管怎样 我们可以通过资源输入流读取资源内容 有没有办法在 kotlin js 中做到这一点 现在我正在通过 ajax 调用请求资源 但最好将资源自动嵌入到已编译的 javascript
  • 从 JSON 文件导入 Google 应用脚本项目

    在 Google Drive 中 可以将应用程序脚本项目下载为 json file 当此类文件导入回 Google 云端硬盘时 它与 Google 脚本编辑器应用程序没有正确关联 有什么办法可以正确地做到这一点吗 导入和导出 Apps 脚本
  • iphone如何指定Class数据类型必须采用某种协议

    在我的应用程序中 我需要返回 Class 作为返回类型 例如 应用 m Class getParserClass return NCCurrencyParser class NCCurrencyParser m interface NCCu
  • 查找文本中出现的大量短语

    我正在构建一个后端并尝试解决以下问题 客户端向后端提交文本 大约2000平均字符数 接收请求的后端端点必须对提交的文本应用短语突出显示 周围有80k要匹配的短语 短语是一个简单的对象 phrase phrase to match link
  • 如何确定 Colliderect 中对象相互穿过的原因

    由于某种原因 Colliderect 无法工作 雨水会穿过人行道 这真的很烦人 因为所有这些未使用的精灵都会产生大量的延迟 import pygame import random class Square pygame sprite Spr
  • 使用 jQuery 从一组选择菜单中删除和添加选项

    这比标题所描述的要复杂一些 但以下是基本的业务规则 上面有三个选择菜单 页面 每个页面都填充相同的内容 选项和值 总会有三个选择 菜单 总会有相同的数字 每个选择中的选项 值 菜单 在任一问题中选择一个问题 菜单将删除该问题作为选项 另外两