-1

スパンの数レベル上のチェックボックスにアクセスしようとすると問題が発生します。

<div class="control-group">
<input type="checkbox" name="employed_now" id="employed_now" class="checkbox-msg"/>
<label><span class="label label-success checkbox-msg">Yes</span>employed_now</label>

span.checkbox-msgクリックされると、dom をトラバースしてinput:checkboxチェックボックスをオン/オフしたい。

次のコードは機能しません。

    $(document).on('click', 'span.checkbox-msg', function (e) {
        e.preventDefault();
        $(this).parent().find('input:checkbox').attr('checked','checked');
    });

ページに他のクラスがあるため、「checkbox-msg」のクラス名だけを使用/ターゲットにすることはできません。

親>親をチェックボックスにターゲットするにはどうすればよいですか?

4

3 に答える 3

2

あなたはあなたに合ったものを使うこと.siblings().closest()でき、あなたは.prop()チェックとチェックを外すために使うことができます:

$(this).parent().siblings('input:checkbox').prop('checked', true);

また

$(this).closest('.control-group').find('input:checkbox').prop('checked', true);

ここで両方を見つけてください

于 2013-05-08T05:31:47.270 に答える
2

あなたはこのようにすることができます:

    $(document).on('click', 'span.checkbox-msg', function (e) {
        e.preventDefault();
        $('input:checkbox', $(this).closest('div')).attr('checked','checked');
    });

for='employed_now'ただし、属性を追加するだけで、<label>jqueryなしで同じ機能を使用できます。

于 2013-05-08T05:32:42.173 に答える