如何使用 jQuery 动态添加组合框

2023-12-05

我有这个正在创建的工作代码one组合框:

你可以在这里看到它的工作原理:jsfiddle

$('body').on('change', '.combo', function() {
    var selectedValue = $(this).val();

    if ($(this).find('option').size() > 2) {
        var newComboBox = $(this).clone();
        var thisComboBoxIndex = parseInt($(this).attr('data-index'), 10);
        var newComboBoxIndex = thisComboBoxIndex + 1;

        $('.parentCombo' + thisComboBoxIndex).remove();

        if (selectedValue !== '') {
            newComboBox.attr('data-index', newComboBoxIndex);
            newComboBox.attr('id', 'combo' + newComboBoxIndex);
            newComboBox.addClass('parentCombo' + thisComboBoxIndex);
            newComboBox.find('option[val="' + selectedValue + '"]').remove();
            $('body').append(newComboBox);
        }
    }
});

这导致了这样的结果,每次我填充一个组合框时,都会打开下一个组合框。

one combobox only

我怎样才能改变该代码以获得这个?这意味着打开两个组合框(请忘记style)

Which means two comboboxes effect

谢谢。


我不完全确定你的意图,但似乎你想要两人一组select元素,然后当用户选择一个值时添加一个新组。

在这种情况下,我建议将你们两个分组selects in a fieldset像这样:

<fieldset>
  <select id="combo1" class="combo" data-index="1">
    <option></option>
    <option val="Opt1">Opt1</option>
    <option val="Opt2">Opt2</option>
    <option val="Opt3">Opt3</option>
  </select>
  <select id="combo2" class="combo" data-index="2">
    <option></option>
    <option val="Opt1">Opt1</option>
    <option val="Opt2">Opt2</option>
    <option val="Opt3">Opt3</option>
  </select>
</fieldset>

​ 然后查找那个父母fieldset并像这样克隆它:

$('body').on('change', '.combo', function() {
  var selectedValue = $(this).val();

  var fieldset = $(this).parents('fieldset');

  if ($(this).find('option').size() > 2) {
    var newFieldset = fieldset.clone();
    var newComboBox = $(fieldset).children('.combo:first');
    var thisComboBoxIndex = parseInt($(this).attr('data-index'), 10);
    var newComboBoxIndex = thisComboBoxIndex + 1;

    $('.parentCombo' + thisComboBoxIndex).remove();

    if (selectedValue !== '') {
        newComboBox.attr('data-index', newComboBoxIndex);
        newComboBox.attr('id', 'combo' + newComboBoxIndex);
        newComboBox.addClass('parentCombo' + thisComboBoxIndex);
        newComboBox.find('option[val="' + selectedValue + '"]').remove();
        $('body').append(newFieldset);
    }
  }     
});​

有些细节可能并不完全符合您的需要,但总的来说,这是我推荐的方法。

在这里找到更新的 Fiddle:http://jsfiddle.net/JaVVe/8/

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

如何使用 jQuery 动态添加组合框 的相关文章

  • 来自 DataURL 的 Blob?

    Using FileReader s readAsDataURL 我可以将任意数据转换为数据 URL 有没有办法将数据 URL 转换回Blob使用内置浏览器 API 的实例 用户 Matt 一年前提出了以下代码 如何在javascript中
  • 如何从表中选择所有偶数 id?

    我想从 MySQL 数据库的表中选择所有甚至帖子 ID 然后显示它们 我还想获取所有带有奇怪 id 的帖子并将它们显示在其他地方 我想使用 PHP 来完成此操作 因为这是我使用的服务器端语言 或者 我是否必须选择所有帖子 然后使用 Java
  • 零作为 IIFE 中的第一个参数[重复]

    这个问题在这里已经有答案了 In babeljs v6 5 1 class Foo 编译为 use strict var classCallCheck2 require babel runtime helpers classCallChec
  • 使用 NodeJS 让 Discord 机器人发送带有消息的图片

    我有几张照片 全部在 imgur 上 带有直接图像链接 格式 https i imgur com XXXXXX jpg https i imgur com XXXXXX jpg 以及用 NodeJS 制作的 Discord 机器人 我发送这
  • Three.js - 在代码中包含网格数据

    我有这个 Three js 代码 其中 JSON 加载器从文件 models mountain json 加载网格 var Three new function this scene new THREE Scene this camera
  • Youtube 播放器 Iframe,在 Firefox 上有声音但没有视频

    我正在使用 YT Player API 在滑块内创建多个 iframe youtube 视频 第一个视频在 onYouTubeIframeAPIReady 之后调用 当我单击正常工作的下一个按钮时 会出现下一个视频 但是当我尝试在 Fire
  • Chrome SuppressDifferentOriginSubframeJSDialogs 使用 JS 设置覆盖?

    Chrome 开发团队显然刚刚推出了一项名为 SuppressDifferentOriginSubframeJSDialogs 的新 功能 这使得默认情况下不会显示来自与父级不同域上的 iFrame 的警报 确认框 https www ch
  • JQuery 动画文本

    找到简单 简单的动画文本是非常困难的 喜欢这个网站上的 内爆 http codecanyon net item jquery text animation full screen preview 233445 http codecanyon
  • 从未定义解构时避免错误

    可以说我有这个代码 const x y point Babel 会将其变成 var point point x point x y point y 这很好 但是如果点未定义怎么办 现在我得到一个错误 Cannot read property
  • 点击问题:动态生成的链接不触发点击功能

    下面是两个代码片段 由于某种原因什么也没有发生 但来自同一个 JS 文件的其他 jQuery 函数在带有 UL 的页面上执行得很好 这是在盯着我看吗 ul class paganation li 1 li li a href 2 a li
  • 在 vue.js 模板中包含外部脚本

    我是 Vue js 和 web pack 的新手 所以我决定使用 vue cli webpack 来构建初始应用程序 我试图包含一个外部脚本 例如组件 不需要的模板中 但是 Vue 警告这是不允许的 我的 index html 文件与最初生
  • Postman - 如何计算 JSON 响应中特定对象的出现次数

    我是 JSON 和 Postman 的新手 我相信我正在尝试做一些非常简单的事情 我创建了一个 GET 请求 它将获得如下所示的 JSON 响应 在下面的例子中我想得到count响应中所有 IsArchived 属性 这些属性的数量因响应而
  • Meteor.js 登录事件

    因此 我对 Meteor 框架和 JavaScript 总体来说还很陌生 但我正在使用该框架开发一个小项目 以尝试让自己达到标准 基本上我正在开发一个微博客网站 目前 用户可以通过多种服务登录 fb google 等 我通过插入所需 url
  • RTCDataChannel发送方法不发送数据

    我的 RTCDataChannel 遇到一个奇怪的问题 我正在对 WebRTC 进行一些研究 并且已经可以进行 WebRTC 音频 视频聊天 现在我想使用 RTCDataChannel 添加文本聊天和文件共享 我已经像这样创建了 RTCDa
  • 使用 Lodash 的 TypeScript:_.map(["123", " 234 "], _.trim) 返回 boolean[]?

    我有一个字符串数组 它们已像这样分割 var searchValue 600 800 123 180 var groups searchValue split gt 600 800 123 180 因此项目周围可能存在空格 并且我想删除空格
  • 在声明组件选择器时添加指令 - Angular 7

    我正在学习 Angular 并通过单击按钮动态创建组件 我正在尝试使用 Angular Material 的拖放功能来拖动这些创建的组件以对它们进行排序 我的基本组件 html 中有以下代码 div style margin 20px di
  • 使用 jQuery 修改 HTML 表格的结构

    我有一个元素列表 X在以下示例中 显示在 HTML 表格的行或列中 从 HTML 代码的角度来看 我有 水平显示 table tr td A td td B td td C td tr table 或 垂直显示 table tr td A
  • 如何清除隐藏上的引导模式

    如何在关闭 隐藏 关闭时清除引导模式 我有以下模态定义
  • 如何在 JavaScript 中获取浮点数的小数位?

    我想要的是与 Number prototype toPrecision 几乎相反的 这意味着当我有数字时 它有多少位小数 例如 12 3456 getDecimals 4 对于任何想知道如何更快地完成此操作 无需转换为字符串 的人 这里有一
  • jQuery 覆盖默认验证错误消息显示(Css)弹出/工具提示等

    我试图用 div 而不是标签来覆盖默认的错误消息标签 我看过这个帖子 https stackoverflow com questions 309574 jquery validation how to not display errors

随机推荐

  • 如何使用XSLT仅获取某些行和某些列?

    如何使用 XSLT 转换此 XML 文件
  • 从 iPhone 应用程序拨打电话 [重复]

    这个问题在这里已经有答案了 可能的重复 从我的应用程序中拨打 iPhone 电话 我想通过 iPhone 应用程序拨打给定号码 您能建议任何最好的教程来解释它或告诉我这个过程吗 你可以试试 NSURL phoneNumberURL NSUR
  • 单击展开包含详细信息和摘要标签

    我正在使用单击展开折叠使用
  • 将文件内容读入ArrayList

    在之前的项目中 我需要将文件内容读取到数组中 现在我必须做同样的事情 只是我必须将内容读入 ArrayList 我遇到的几个问题是 如何逐步浏览 ArrayList 并分别添加每个项目 如果文件包含超过 10 个输入 则必须退出 我已经尝试
  • 如何在 Java 中并行运行某些东西?

    我正在尝试打印一个范围内的所有可能的组合 例如 如果我的lowerBound是 3 我的max是 5 我想要以下组合 5 4 5 3 4 3 我已经用这个实现了helper 下面找到的函数 当然 如果我的最大值很大 则需要很多组合 这将需要
  • 需要帮助使用泰勒级数逼近Python中的正弦函数

    我对 Python 很陌生 我正在尝试使用近似正弦函数this series 我的代码如下所示 import math def sin x n sine 0 for i in range n sign 1 i sine sine x 2 0
  • 测试一个数字是否是斐波那契数

    我知道如何制作斐波那契数列 但我不知道如何测试给定的数字是否属于斐波那契数列 我想到的一种方法是生成斐波那契数列 数字到该数字并查看它是否属于该数组 但必须有另一种更简单 更快的方法 有任何想法吗 一个非常好的测试是 N 是斐波那契数当且仅
  • 如何使用命令提示符连接到 mysql 服务器:错误

    我正在使用以下命令使用命令提示符连接到数据库 mysql mysql h localhost u test ptest test 但我收到以下错误 ERROR 1064 42000 You have an error in your SQL
  • Laravel 资源中的附加数据

    我使用控制器中的 Laravel 资源 data Project limit 100 gt get return response gt json ProjectResource collection data 我喜欢将附加信息传递给 Pr
  • Android:检查活动是否被系统从服务中销毁

    我有一项服务监听来自服务器的一些事件 服务有 START STICKY 标志 当它被操作系统杀死时 该标志使他重新启动 当服务收到事件时 我有两种情况 首先 如果活动没有被终止 我需要将结果发送到本地广播接收器并更新 UI 其次 如果它被操
  • 添加表单操作[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 当我提交时我试图再次转到index php page servers 但是当我提交表单时重定向是index php 但实际上是index php page servers 我该如何解决
  • Chrome 扩展:检测 Google 文档中的按键

    嘿 我和我的朋友们刚接触 javascript 并且遇到了一些代码问题 目前 我们正在尝试制作一个 Chrome 扩展 通过检测击键来检测用户何时以及对特定 google 文档进行了多少操作 我们当前的方法涉及创建一个 按键 事件监听器 我
  • Codeigniter SMTP 无法连接

    我正在使用 Codeigniter 3 并且我的网站上有一个简单的联系表 此联系表单在我的本地主机 XAMPP 环境中完美运行 但在我的共享 Web 托管 BT 上却不起作用 我无法弄清楚问题是什么 我一直在与他们的支持人员联系 显然 如果
  • site_url() 在 codeigniter 框架中无法正常工作

    以下代码对于 Codeigniter 框架无法正常工作 这是我的观点 a href gt Back to Main a 您应该在控制器构造方法或像这样调用视图的函数中加载 url helper this gt load gt helper
  • 在 AngularJS 中的页面之间共享数据返回空

    通常 我编写 SPA 并且通过服务在控制器之间共享数据很简单 我没有使用 SPA 格式 没有使用 ng view 并尝试在页面之间共享数据 但在加载第二个页面 以获取数据 时它是空的 第 1 页 索引 html div div
  • fastapi (starlette) RedirectResponse 重定向到 post 而不是 get 方法

    返回 RedirectResponse 对象后 我遇到了奇怪的重定向行为 事件 py router APIRouter router post create response model EventBase async def event
  • Android 更改小部件背景图片

    在过去的两天里 我一直在努力改变我的小部件的背景 基于一些 if 语句 现在删除 只是想从类中更改小部件背景 下面是我的源代码 不过 怎么了 我之前已经更改了图像 例如背景 但无法让它适用于我的小部件 谢谢 顺便说一句 这是我最近的尝试 W
  • 如何根据产品类别在 WooCommerce 添加到购物车按钮下方添加文本

    我尝试在某些类别的产品页面上的 WooCommerce 添加到购物车按钮下方添加一个 div 我在这里有点不知所措 这段代码没有破坏任何东西 但文本没有显示 我试过了 woocommerce div product form cart af
  • (flask)-sqlalchemy查询,必须导入所有模型

    我对 Flask 和 Flask SQLAlchemy 有一个问题 对于任何查询 我都需要导入所有相关模型 现在我的 auth views py 看起来像这样 编程的前几行所以只是一个测试视图 from flask import jsoni
  • 如何使用 jQuery 动态添加组合框

    我有这个正在创建的工作代码one组合框 你可以在这里看到它的工作原理 jsfiddle body on change combo function var selectedValue this val if this find option