jQuery .prop('checked',false)不起作用

Mah*_*eed 5 html javascript jquery prop

HTML:

<form class="form">
    <input type="checkbox" id="box" /> Check Me!
</form>
Run Code Online (Sandbox Code Playgroud)

JS:

$(window).load(function() {
    var myFunc = function() {
        if($('#box').prop('checked', false)) {
            $('.form').append('<p>Checkbox is not checked.</p>');
        }
    }

    $('#box').on('change', myFunc);
});
Run Code Online (Sandbox Code Playgroud)

这是一个JSFiddle http://jsfiddle.net/3PYm7/

当我$('#box').prop('checked', false)作为if声明的条件使用它不起作用,但! $('#box').prop('checked')工作得很好!

Adi*_*dil 21

该语句$('#box').prop('checked', false)不返回布尔值,而是将checked属性设置为false,因此不应在条件和正常行为中使用

if($('#box').prop('checked', false))
Run Code Online (Sandbox Code Playgroud)

可以改变使用测试is():checked选择.

if($('#box').is(':checked'))
Run Code Online (Sandbox Code Playgroud)

要么

if($('#box:checked').length)
Run Code Online (Sandbox Code Playgroud)

您可以使用本机JavaScript 获得最佳性能

if(document.getElementById('box').checked)
Run Code Online (Sandbox Code Playgroud)

$('#box').prop('checked')您提到的工作语句返回checked属性值而不是设置.

  • `$('#box').prop('checked')=== false`比jQuery的`:checked`更快.它仍然可以完成工作! (3认同)