0

我有这个 Jquery:

$(document).ready(function() {
   $('input[type="checkbox"]').click(function() {
       var togClass=$(this).attr('class');
       if($(this).attr('checked')){
          $(this).parent().parent().('div.' + togClass ).css("display", "inline-block");
       }
       else {
          $('div.' + togClass ).css("display", "none");

       }
   });
});

这个 Html 基本上重复了:

<div id="Coltext">
     <div id= "Sidechecks">
      <input checkbox class= "ModelName">
     <div id="seqWrap">
     <div id="Nucwrap"> 
     <div id="hit" class= "modelname">"String"</div>
     </div> 
     </div>
     </div>
 </div>   

当我单击时,checkbox我希望所有的HIT divs都变得不可见,仅在这个 Div 中。mainDIV- coltext重复了很多次,每个都有相同的模型,但是当用户点击 时checkbox,我只希望Hit Divs那个 main div 消失,然后在点击时重新出现。没有人能帮忙,看起来很简单,但我无法让它工作?

4

4 回答 4

1

以下是检查复选框是否被选中的方法:

if($(".myCheckbox").is(':checked'))
{
    // do something
}
else
{
    // do something else
}
于 2012-07-16T10:58:37.703 回答
1

请参阅有关可验证 html 的评论。我不确定这<input checkbox class= ModelName> 会呈现为可供选择的东西$('input[type="checkbox"]')

尝试改变

$(this).parent().parent().('div.' + togClass )

$(this).parent('div.' + togClass + "[hit]")

这应该向上遍历,寻找togClass具有参数“命中”的任何 DIV

于 2012-07-16T11:00:02.640 回答
0

一旦你修复了你的 HTML 标记(根据上面的评论),考虑使用'closest',它将搜索一个元素及其祖先,寻找与选择器匹配的最接近的元素(而不是所有与选择器匹配的元素)。

$(this).closest('div.' + togClass ).css("display", "none");

您当前的else语句正在选择所有匹配的类节点。

于 2012-07-16T10:59:24.310 回答
0
  <div class="Coltext">
   <div id="Sidechecks">
          <input type="checkbox" class="ModelName" />
    <div class="seqWrap">
    <div class="Nucwrap"> 
    <div id="hit" class="modelname">"String"</div>
    </div> 
    </div>
    </div>
   </div> 

jQuery

$(this).parent('div.' + togClass + "[hit]")
于 2012-07-16T11:06:47.187 回答