jQuery 兄弟姐妹不选择 div 内的选项?

2023-12-21

$('.input-group select').change(function() {
    
    var value = $(this).val();
alert($('.input-group select').siblings('select').children('option').length); 
    $(this).siblings('select').children('option').each(function() {
        if ( $(this).val() === value ) {
            $(this).attr('disabled', true).siblings().removeAttr('disabled');   
        }
    });
    
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="input-group 1">
    <select name="select1">
        <option>No Match</option>
        <option value="1">Test</option>
        <option value="2">Test 2</option>
        <option value="3">Test 3</option>
    </select>
</div>

<div class="input-group 2">
    <select name="select2">
        <option>No Match</option>
        <option value="1">Test</option>
        <option value="2">Test 2</option>
        <option value="3">Test 3</option>
    </select>
</div>

我有以下代码,并且想要选择 select 中的选项,以便当用户在第一个值 A 中选择时,该值在第二个选择框中被禁用,反之亦然。

我找到了 jQuery 的兄弟姐妹,但我无法在 div 中选择它......我哪里做错了?


请尝试这个...
这里的假设是只有两个selectHTML 中的框应设计此功能:

$ = jQuery;
$("#select1, #select2").on("change", function() {
     if($(this).attr("id") == "select1"){
        src = "#select1"; target="#select2";
     }
     else{
        src = "#select2"; target="#select1";
     }

     $(target).children().removeAttr("disabled");
     $(target).find("option[value="+$(src).val()+"]").attr("disabled", "disabled");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="input-group 1">
    <select id="select1">
        <option>No Match</option>
        <option value="1">Test</option>
        <option value="2">Test 2</option>
        <option value="3">Test 3</option>
    </select>
</div>

<div class="input-group 2">
    <select id="select2">
        <option>No Match</option>
        <option value="1">Test</option>
        <option value="2">Test 2</option>
        <option value="3">Test 3</option>
    </select>
</div>

EDIT
更新了 jQuery 以解决评论部分中表达的问题。这里所做的一个假设是,新的select将以与现有盒子类似的方式添加盒子,即在新的盒子下<div class="input-group">。因此,根据给定的 HTML 布局,更新后的 jQuery 将是:

$("select").on("change", function(){
    $(this).parent().siblings().find("option").removeAttr("disabled");
    $(this).parent().siblings()
           .find("option[value="+$(this).val()+"]").attr("disabled", "disabled");
});

建议:

  • 将上面的代码包裹在一个function并在新的任何时候调用该函数select框是动态添加的 - 再次假设它将添加到<div class="input-group">并且会有一个父母<div>就在第一个这样的元素之上。

  • Change <option>No Match</option> to <option value="0">No Match</option>或类似的。

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

jQuery 兄弟姐妹不选择 div 内的选项? 的相关文章

  • 无法在 $.ajax 请求上设置 HTTP 主机标头

    之前已经以不同的方式讨论过这个主题 但我还没有找到适合我的解决方案 我正在使用jquery 1 7 1 我有一个 REST 风格的 Web 服务 可以返回 JSON 和 XML 但对于这个项目 我需要使用 XML 端点 为了绕过跨域限制 我
  • 使用 jQuery 从标签获取值

    我想从标签中获取月份和年份的值 我如何使用 jquery 获取这些
  • ajax 成功后循环 JSON 响应

    抱歉 这是重复的here https stackoverflow com questions 733314 jquery loop over json result from ajax success问过 但我对此很陌生 所以我想知道该怎么
  • 将参数传递给 jquery 单击事件中的回调函数[重复]

    这个问题在这里已经有答案了 直接进入正题 我有一个 jquery 事件监听器 如下所示 number click printNumber 和一个回调函数 function printNumber number console log num
  • JQuery Mobile - 内联显示 HTML 表单

    Goal 在 Jquery Mobile 中的同一行显示文本框和提交按钮 Problem 它们不会显示在同一行 我曾多次尝试在同一行显示文本框和提交按钮 但它从未起作用 这是我的代码和我使用的组合
  • jQuery 显示/隐藏兄弟姐妹

    我有这段代码 旨在首先隐藏除第一个元素之外的所有相关元素 这个 做的不错啊接下来 它应该根据选择的项目显示 隐藏这些元素 但这部分不起作用 想法 jQuery accordion dl not first child hide hide a
  • 如何在 Bootstrap 4 轮播中堆叠多个图像

    我不知道如何使用 Bootstrap 4 以及如何在一张幻灯片中显示多个小图像 例如缩略图 而不是让图像填充轮播的宽度 我已经使用下面的代码尝试了一些操作 但仍然无法堆叠很多图像 div class container h2 class t
  • jQuery 延迟可以取消吗?

    我遇到了一种情况 我想取消延期 延迟与 ajax 调用相关联 为什么我使用延迟 我不使用 ajax 返回的普通 xhr 对象 我使用的是 jsonp 这意味着我无法使用 HTTP 状态代码进行错误处理 并且必须将它们嵌入到响应中 然后检查代
  • KnockoutJS fromJS 不起作用 TypeError:无法调用未定义的方法“fromJS”

    我使用knockoutJS 当我使用 fromJS 时出现以下错误 类型错误 无法调用未定义的方法 fromJS 我的 JavaScript 代码
  • Magento - AJAX 将产品页面元素调用到类别页面。选择框未填充

    我正在尝试在我的 Magento 商店上创建 ajax 快速视图 或 快速购物车 类型功能 一种将鼠标悬停在产品上并可以选择在灯箱中 快速查看 它而不是转到产品页面的方式 我正在使用一个非常简单的 jQuery Ajax 调用 如下所示 j
  • 在 Woocommerce 的单个产品页面中添加产品注释字段

    我要创建定制订单备注 in 单品用户的详细信息页面 这个可以使用 php 来完成 无需插件 我已附上屏幕截图和网站 URL 以供参考 已尝试使用此代码function php它在结账页面上工作 而不是在产品信息页 任何人都可以帮助我实现这一
  • Javascript 当我们在 Chrome 中选择“停留在页面上”时如何调用函数

    请在 Chrome 浏览器中检查我的代码 如果您点击刷新 系统会提示您 2 个选项 离开此页面并 保持此页上 当我点击2 停留在此页面按钮它必须激活我的自定义功能显示消息 任何人都可以为我提供解决方案吗
  • 使用 fadeIn() 时,jQuery“未捕获类型错误:未定义不是函数”;

    我是 JS 新手 正在编写一个基本的富含 jQuery 的网页 其中同一文档中的每个页面都具有淡入 淡出功能 使用具有单独 ID 的相同 div 元素 无论如何 当我尝试淡入当前页面时 我收到错误 未捕获的类型错误 未定义不是函数 我在网上
  • 这段 jquery 代码可以写得更短吗? (初学者)

    这是我第一次在 stackoverflow 上提问 所以如果我做错了什么请原谅我 我也是 jquery 的新手 但通过阅读和教程 我设法创建了一个工作示例 下面的代码是我创建的 这意味着我有三个带有可拖动需求的列表和三个可以删除需求的占位符
  • jQuery 单击位于另一个 div 之上的 div

    我的 jQuery 有问题click当选择器是 a 时div那是在另一个之上div正如这里所看到的 the html div div div div css parent background color red width 100px h
  • jQuery 删除函数真的删除 Dom 元素吗?

    我真的想知道 jQuery 是否remove http api jquery com remove 函数确实从 DOM 中删除元素 首先 我看了here https stackoverflow com questions 2185760 j
  • 在成功回调之前修改 JSONP 结果

    我想从外部服务加载一些 JSON 数据 然而 它提供 foo bar useful 而我真正关心的是 有用 的部分 我需要将那部分传递给success打回来 我正在尝试使用Deferred一次从多个数据源加载 类似this https st
  • Chrome 和 IE 上的滚动/延迟事件

    我试图让用户始终看到一个内容块 即使他向下滚动页面也是如此 他还应该能够上下滚动内容块 这是一个精简版本的小提琴 向您展示我的意思 http jsfiddle net 9ehfV 2 http jsfiddle net 9ehfV 2 人们
  • 显示对象内容 - JS/jQuery

    With this data events 返回 object Object 我需要看看里面到底发生了什么 我找到了这个 var Finder each this data events function i n Finder Name i
  • jQuery翻译+切换,如何链接两者?

    我目前正在开发一个 jQuery 脚本 它将把网站的文本翻译成外语 我正在为此使用 Google Translate API 我希望该页面包含一个显示 En Espanol 的链接 当用户单击 En Espanol 时 页面正文会被翻译成西

随机推荐