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>   

私がクリックすると、このDivでのみ、checkboxすべてが非表示になります。HIT divsメインDIV- coltextは何度も繰り返され、それぞれに同じモデルがありますが、ユーザーがをクリックすると、そのメインdivcheckboxのみが消えて、クリックすると再び表示されます。Hit Divs誰か助けてくれない、それは単純なようですが、私はそれを機能させることができませんか?

4

4 に答える 4

1

検証可能な html に関するコメントを参照してください。<input checkbox class= ModelName> それが選択可能なものにレンダリングされるかどうかはわかりません$('input[type="checkbox"]')

変更してみる

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

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

togClassこれは、パラメータ「hit」を持つDIV を探して、上方向にトラバースする必要があります。

于 2012-07-16T11:00:02.640 に答える
1

チェックボックスがオンになっているかどうかを確認する方法は次のとおりです。

if($(".myCheckbox").is(':checked'))
{
    // do something
}
else
{
    // do something else
}
于 2012-07-16T10:58:37.703 に答える
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 に答える