在选中时显示和隐藏div,取消选中复选框

Bha*_*wna 1 html javascript css jquery

我想隐藏并在检查时显示div并取消选中复选框.我正在找父母并找到我要隐藏的div.但是代码没有运行

Jquery是:

$('.show-check').click(function() {
    if (this.checked) {    
        $(this).parent().find('.div-check').fadeIn('slow');
    } else
        $(this).parent().find('.div-check').fadeOut('slow');
});
Run Code Online (Sandbox Code Playgroud)

HTML:

<div class="type-details">
  <span class="form-label">Logo:</span>
  <div class="switch">
    <label>
      <input type="checkbox" class="show-check" checked>
      <span class="lever"></span>
    </label>
  </div>
  <div class="landing-inputfile div-check">
    <div class="col-xs-12 no-padding">
      <div class="input-group">
        <input type="text" class="file-input" placeholder="No file" readonly>
        <label class="input-group-btn">
          <span class="btn btn-default btn-flat btn-basic2">
             UPLOAD <input type="file" style="display: none;">
          </span>
        </label>
      </div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

Sha*_*k D 5

为什么你的代码不起作用:

$(this).parent()会给你label- 而且find('.div-check')不会退货.


使用closest()- 获取具有所需子元素的公共父元素,

$(this).closest('.type-details').find('.div-check').fadeIn('slow');
Run Code Online (Sandbox Code Playgroud)

另外,我建议您使用change()事件而不是click()下面的复选框,

$('.show-check').click(function() {
Run Code Online (Sandbox Code Playgroud)