1

私はこれを機能させようとしていますが、それを実現することはできません。ブートストラップ テンプレートがあり、複数のチェックボックスをオンまたはオフにしたい ( http://jsfiddle.net/v6wmV/177/など) 。その理由を知りたいです。

これは、ビューからのコード スニペットです。

<div class="hide" id="states">
<div class="control-group">
<label class="control-label">Select</label>
    <div class="check">
    <div class="controls">
        <label class="checkbox line">
            <input type="checkbox" class="all" value="Todas" id="allstates" name="st[25]"/>All
        </label>
        <label class="checkbox line">
            <input type="checkbox" value="Caba" id="" name="st[1]"/>Ciudad Autónoma de Buenos Aires
        </label>
        <label class="checkbox line">
            <input type="checkbox" value="Buenos Aires" id="" name="st[2]"/> Buenos Aires
        </label>
        <label class="checkbox line">
            <input type="checkbox" value="Catamarca" id="" name="st[3]"/> Catamarca
        </label>
        <label class="checkbox line">
            <input type="checkbox" value="Chaco" id="" name="st[4]"/> Chaco
        </label>
   </div>
  </div>
 </div>
</div>

これは私のjsファイルです(他の機能を含む):

$('.hide').hide();

$('#registered').click(function(){
 $('#content').toggle('fast');
});

$('#age').click(function () {
$('#content2').hide('fast');
$('#content1').show('fast');
});

$('#range').click(function () {
$('#content1').hide('fast');
$('#content2').show('fast');
});

$('#with').click(function(){
$('#child').toggle('fast');
});

$('#showstates').click(function(){
$('#states').show('fast');
});

$('#hidestates').click(function(){
$('#states').hide('fast');
});

//function for check/uncheck
$('.all').click(function() {
var $checkboxes = $(this).parent().find('input[type=checkbox]');
$checkboxes.prop('checked', $(this).is(':checked'));
});   

これはフィドルです:http://jsfiddle.net/jimena/j56Dy/ 動作していません

4

1 に答える 1

0

1段階ではなく2段階上がる必要があります。parent() はラベル要素を提供します。「コントロール」クラスの div に移動して、find メソッドを適用する必要があります。

var $checkboxes = $(this).parent().parent().find('input[type=checkbox]');

もちろん、それはコードの方法に最小限の変更を適用することでした。ここで Joe によって提供されたものは、おそらくよりスマートです。parent() メソッドを使用せずに、必要なすべてのチェックボックスを取得します。ただし、そのためには、チェックボックス グループに id を設定して、DOM 全体ですべてのチェックボックスを選択しないようにすることができます。

ところで、チェックボックスを表示するために、ある時点で hide div を表示する必要はありませんか?

編集>OK、実際にはマニッシュは両親と一緒に正しいです、それはちょうどいいです、私の答えを忘れてください:D

于 2013-10-22T14:18:13.127 に答える