JS .checked vs jquery attr('checked'),有什么区别?

Jac*_*uia 9 javascript jquery checked attr

我无法想出这个.根据W3 Schools,checked属性设置或返回复选框的选中状态.

那为什么不起作用$('input').checked ? $('div').slideDown() : $('div').slideUp();

然而,使用道具确实有效.

$('input').prop('checked') ? $('div').slideDown() : $('div').slideUp();

这是针对根据数据库值检查的复选框.

Den*_*nis 12

checked 是DOM元素属性,因此在DOM元素而不是jQuery对象上使用它.

$('input')[0].checked
Run Code Online (Sandbox Code Playgroud)

如果你有一个jQuery对象,请使用prop而不是attr因为你正在检查一个属性.仅作为参考:

$("<input type='checkbox' checked='checked'>").attr("checked") // "checked"
$("<input type='checkbox' checked='foo'>").attr("checked") // "checked"
$("<input type='checkbox' checked>").attr("checked") // "checked"
$("<input type='checkbox'>").attr("checked") // undefined
Run Code Online (Sandbox Code Playgroud)

[0].getAttribute("checked")将返回实际值.

prop将返回truefalse基于该属性是否存在