为什么*[选中]与单个选中的输入框不匹配?

sol*_*oth 3 javascript jquery jquery-selectors

假设我有一个id为'test'的复选框,它在一个加载了jQuery 1.5.2的页面上.

<input id="test" type="checkbox"/>
Run Code Online (Sandbox Code Playgroud)

现在,如果我点击复选框将其设置为checked状态...

为什么$("#test").is(":checked")返回true$("#test").is("*[checked]")返回false.

这是一个描述场景jsFiddle

Mac*_*Mac 8

[checked]是,挑选了当前选中的元素的选择器checked属性不是属性-换句话说,"如果元件具有所检查的属性,把它捡起来".

如果要检查是否选中了复选框,则必须使用:checked.

用法示例:

if($('#test').is(':checked'))
{
   return true;
}
Run Code Online (Sandbox Code Playgroud)

使用jQuery 1.6及更高版本,您可以.prop()出于性能原因使用该功能.

if($('#test').prop('checked'))
{
   return true;
}
Run Code Online (Sandbox Code Playgroud)