1

なぜこれが機能せず、デバッグできないのか混乱しています

属性値でグループ化された一連のチェックボックスがあり、これをクリックすると一致する属性値を持つ各グループの下部に checkall クラスがあり、他のチェックボックスを同じ状態に切り替えたい

jquery

$(function () {
    $('.checkall').click(function () {
        var myactivemonth=$(this).attr("data-mymonth");
        console.log(myactivemonth);
        var myactivebox="a_"+myactivemonth;
        $('checkbox[data_mymonth=myactivemonth]').attr('checked','checked');
});

html

<input id="alloInv" class="tip_trigger" type="checkbox" data-mymonth="a_October2012" title="13.94" value="2018441" name="alloInv">
<input id="alloInv" class="tip_trigger" type="checkbox" data-mymonth="a_October2012" title="10.94" value="201845" name="alloInv"> 
<input class="checkall" type="checkbox" data-mymonth="October2012">

ITはすべて問題ないように見えますが、ボックスはカチカチ音をたてていません:(

4

2 に答える 2

2

あなたは一連の間違ったことをしています

  1. checkboxする必要があります:checkbox
  2. data_mymonthする必要がありますdata-mymonth
  3. myactivebox動的に渡す必要があります
  4. 質問のコードから、最終的なものがありません});

いくつかの改善点も

  1. 要素の実際のプロパティの.prop()代わりに使用する必要があります。.attr()$(this).data('mymonth');
  2. 属性.data()から値を取得するために使用しますdata-

そう

$(':checkbox[data-mymonth="' + myactivebox + '"]').prop('checked',true);

http://jsfiddle.net/6Nv3N/の動作デモ


アップデート

あなたの質問のトグル部分を見逃しました

チェックボックスの切り替えを処理するには、プロパティを要素のcheckedプロパティに設定する必要があります。.checkall

.prop()道(デモ

$(':checkbox[data-mymonth="' + myactivebox + '"]').prop('checked', this.checked);

.attr()方法_

$(':checkbox[data-mymonth="' + myactivebox + '"]').attr('checked', this.checked);
于 2012-12-08T16:28:09.977 に答える
0

ありがとうございます

$(function() {
    $('.checkall').click(function() {
        var myactivemonth = $(this).attr("data-mymonth");
        var mystate = $(this).attr("checked");

            if (mystate==undefined) {mystate=false;};

        console.log(myactivemonth);
        var myactivebox = "a_" + myactivemonth;
        $(':checkbox[data-mymonth="' + myactivebox + '"]').attr('checked',mystate);
    });
});

PS は jquery squiggle を更新しました。これは便利なツールです。

于 2012-12-08T17:04:00.113 に答える