我有这个li的列表,它有一个随附的复选框。我试图在点击li时检查复选框。我试图让它使用“this”关键字,以便只检查点击的li中的复选框,但无法弄明白。这是我的代码。
<form method="get">
<ul>
<li class="check"> <input type="checkbox" name="cause1" value="cause1" class="cause1">check 1</li>
<li class="check"> <input type="checkbox" name="cause3" value="cause3" class="cause2"> check 2</li>
<li class="check"> <input type="checkbox" name="cause4" value="cause4" class="cause3">check 3</li>
<li class="check"> <input type="checkbox" name="cause5" value="cause5" class="cause4"> check 4</li>
<li class="check"> <input type="checkbox" name="cause6" value="cause6" class="cause5"> check 5</li>
</ul>
</form>
<script>
$(document).ready(function () {
$('.check').click(function () {
$(this).each(function () {
if (this.checked = false;) {
$(this).checked = true;
} else {
$(this).checked = false;
}
});
});
});
</script>
答案 0 :(得分:1)
你的if语句设置错误,你在那里有赋值运算符,还有分号。也可以尝试使用this选择器和attr()。
if( !( $(this).attr('checked') ) ){
$(this).attr('checked', 'checked');
}
我总是使用attr()来检查和分配复选框值。
答案 1 :(得分:1)
试试这个
$('.check').click(function () {
if($(this).find('input').is(':checked'))
$(this).find('input').prop('checked',false);
else
$(this).find('input').prop('checked',true);
});
答案 2 :(得分:1)
尝试
jQuery(function ($) {
$('.check').click(function (e) {
//ignore the click on the input element else the default behavior and manual toggle will negate each other
if (e.target.tagName != 'INPUT') {
$(this).find('input').prop('checked', function (i, checked) {
return !checked
});
}
});
});
演示:Fiddle