はい/いいえの2つのチェックボックスがあります。チェックボックスは、チェックされているチェックボックスに基づいて div を非表示にします。セレクターの ID を使用して機能する関数がありますが、これらの複数が動的に取り込まれ、クラスを使用してクリックされたチェックボックスに最も近いクラスを選択するには、この関数が必要です。
この関数は ID を使用して動作しますが、クラスを使用したい: http://jsfiddle.net/infatti/mNQK7/
$('#solutionImplemented1').click(function () {
// uncheck the other checkbox and hide other content if this is checked
if (this.checked) {
$('#solutionImplemented2').attr('checked',false);
$('#solutionImplementedContent2').hide(this.checked);
}
// show correct content
$('#solutionImplementedContent1').toggle(this.checked);
});
$('#solutionImplemented2').click(function () {
// uncheck the other checkbox and hide other content if this is checked
if (this.checked) {
$('#solutionImplemented1').attr('checked',false);
$('#solutionImplementedContent1').hide(this.checked);
}
// show correct content
$('#solutionImplementedContent2').toggle(this.checked);
});
これは機能していませんが、クリックされたチェックボックスに関連するセレクターを使用する必要があります: http://jsfiddle.net/infatti/n6gW5/
$('.check-hide-show input:checkbox').click(function () {
var firstCheckbox = $(this).parent().find('input:checkbox').eq(0);
var secondCheckbox = $(this).parent().find('input:checkbox').eq(1);
var checkboxContent1 = $(this).parent().find().nextAll('.check-hide-show-content:gt(0)');
var checkboxContent2 = $(this).parent().find().nextAll('.check-hide-show-content:gt(1)');
// uncheck the other checkbox and hide other content if this is checked
if ($(firstCheckbox).checked) {
$(secondCheckbox).attr('checked',false);
$(checkboxContent2).hide();
$(checkboxContent1).show();
}
});
クリックされたチェックボックスに関連する要素を選択するにはどうすればよいですか? 私はここで何をしていないのですか?