单击另一个元素时尝试切换复选框

时间:2015-03-03 12:33:50

标签: javascript jquery html checkbox

我有p标签,当我点击p标签时,我想切换复选框的检查。现在它只适用于第一个切换。当我点击p时,框被检查,当我再次点击它时,框被取消选中,但就是这样。如果我再次点击它,屏幕上没有任何反应。当我检查firebug中的元素时,checked属性出现并消失,我认为这应该发生,但屏幕上没有任何内容。我尝试使用prop(),但它没有用。这就是我对attr()

的看法
$(".clickMe").on("click", function(){
    if($("#thisBox").attr("checked") ){
        $("#thisBox").removeAttr("checked")
    }else{
        $("#thisBox").attr("checked","checked")
    }
})

有人可以告诉我是否有办法检查元素是否有变化。像**if**($(el).changes(){ do this } )那样的模式是什么

3 个答案:

答案 0 :(得分:3)

试试这个

$(".clickMe").on("click", function(){
    if($('#thisBox')[0].checked){
         $('#thisBox').prop('checked', false);
    }else{
        $('#thisBox').prop('checked', true);
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<input type="checkbox" id="thisBox" /> Testing Checkbox

<input type="button" class="clickMe" text="test" value="testing button"/>

答案 1 :(得分:2)

使用此Demo Here

$(".clickMe").on("click", function(){
    if($("#thisBox").is(':checked')){
         $('#thisBox').prop('checked', false);
    }else{
         $('#thisBox').prop('checked', true);
    }
})

答案 2 :(得分:2)

只需触发事件:

$(".clickMe").on("click", function(){
    $("#thisBox").trigger("click");
});

LIVE