单击li时,jQuery选中复选框

时间:2014-03-04 01:12:52

标签: jquery html5 forms

我有这个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>

3 个答案:

答案 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