首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果选中单选按钮,则隐藏和显示DIV

如果选中单选按钮,则隐藏和显示DIV
EN

Stack Overflow用户
提问于 2016-10-14 10:08:02
回答 3查看 1.1K关注 0票数 0

我想显示DIV有类'checkboxClass‘只有当单选按钮被选中,是在DIV内有类’无线电类‘。

当选中任何单选按钮时,我的当前代码将显示所有具有“checkboxClass”类的DIV元素。

如果选中了特定“mainSection”类中的单选按钮,那么我希望显示在“mainSection”中包含“checkboxClass”类的所有DIV,否则应该隐藏它。

代码语言:javascript
复制
$('.radioClass input:radio').bind('click touch', function() {
  if ($(this).is(":checked")) {
    $('.checkboxClass').css("display", "block");
  } else {
    $('.checkboxClass').css("display", "none");
  }
});
代码语言:javascript
复制
.checkboxClass {
  display: none;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

<div class="mainSection" style="border:solid 1px #aaa">
  <div class="radioClass">
    <input type="radio" name="xyz" value="xyz">
  </div>
  <div class="checkboxClass"><input type="checkbox"></div>
  <div class="checkboxClass"><input type="checkbox"></div>
  <div class="checkboxClass"><input type="checkbox"></div>
</div>
<br />
<div class="mainSection" style="border:solid 1px #aaa">
  <div class="radioClass">
    <input type="radio" name="xyz" value="xyz">
  </div>
  <div class="checkboxClass"><input type="checkbox"></div>
  <div class="checkboxClass"><input type="checkbox"></div>
  <div class="checkboxClass"><input type="checkbox"></div>
</div>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-14 10:10:46

首先,使用parent child选择器$('.mainSection .radioClass input:radio')

并查找特定的复选框,这些复选框可向上遍历到父母$(this).parents('.mainSection').find('.checkboxClass')

代码语言:javascript
复制
$('.mainSection .radioClass input:radio').bind('click touch', function () {
  
  $('.checkboxClass').css("display", "none");
            if($(this).is(":checked"))
            {
                $(this).parents('.mainSection').find('.checkboxClass').css("display", "block");
            }
            else {
                $(this).parents('.mainSection').find('.checkboxClass').css("display", "none");
}
        });
代码语言:javascript
复制
.checkboxClass
{

   display:none; 

}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="mainSection">

<div class="radioClass">
<input type="radio" name="xyz" value="xyz" >Number</div>
<div class="checkboxClass">123</div>
<div class="checkboxClass">456</div>
<div class="checkboxClass">789</div>


</div>

<div class="mainSection">

<div class="radioClass">
<input type="radio" name="xyz" value="xyz" >Characters
</div>

<div class="checkboxClass">ABC</div>
<div class="checkboxClass">XYZ</div>
<div class="checkboxClass">PQR</div>

</div>

票数 1
EN

Stack Overflow用户

发布于 2016-10-14 10:13:04

您需要使用mainSection使用.closest(),然后针对checkboxClass并执行所需的操作。

代码语言:javascript
复制
$('.radioClass input:radio').bind('click touch', function() {
     var mainSection = $(this).closest('.mainSection');
     mainSection.find('.checkboxClass').toggle(this.checked);

     //Hide others
     $('.mainSection').not(mainSection).find('.checkboxClass').hide();
});

代码语言:javascript
复制
jQuery(function($) {
  $('.radioClass input:radio').on('click', function() {
    var mainSection = $(this).closest('.mainSection');
    mainSection.find('.checkboxClass').toggle(this.checked);
    
    //Hide others
    $('.mainSection').not(mainSection).find('.checkboxClass').hide();
  });
})
代码语言:javascript
复制
.checkboxClass {display:none}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="mainSection">
  <div class="radioClass">
    <input type="radio" name="xyz" value="1">1
  </div>
  <div class="checkboxClass">checkboxClass in 1</div>
  <div class="checkboxClass">checkboxClass in 1</div>
  <div class="checkboxClass">checkboxClass in 1</div>
</div>

<div class="mainSection">
  <div class="radioClass">
    <input type="radio" name="xyz" value="2">2
  </div>
  <div class="checkboxClass">checkboxClass in 2</div>
  <div class="checkboxClass">checkboxClass in 2</div>
  <div class="checkboxClass">checkboxClass in 2</div>
</div>

票数 0
EN

Stack Overflow用户

发布于 2016-10-14 10:18:32

使用最近()查找()方法

代码语言:javascript
复制
 $('.radioClass input:radio').bind('click touch', function () {
            if($(this).is(":checked"))
            {    
                $(this).closest('.mainSection').find('.checkboxClass').css("display", "block");
            }
            else {
                $(this).closest('.mainSection').find('.checkboxClass').css("display", "none");
}
        });

或者使用兄弟姐妹() of 家长()

代码语言:javascript
复制
 $('.radioClass input:radio').bind('click touch', function () {
            if($(this).is(":checked"))
            {    
                $(this).parent().siblings('.checkboxClass').css("display", "block");
            }
            else {
                $(this).parent().siblings('.checkboxClass').css("display", "none");
}
        });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40040507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档