双方.is(':checked')并.prop('checked')可以使用,如果复选框被选中进行测试.
这两种查询检查状态的方式之间是否存在任何有趣/重要的差异,还是仅仅是个人偏好的问题?
他们最终都检查了同样的事情.
如果您使用1.6.0或更高版本,prop('checked')则是最直接的jQuery方式.jQuery不必解析和处理选择器来弄清楚要做什么.[下面的注意]
您也可以(从1.6.1开始)attr('checked')再次使用1.5.x及更早版本.
或者你可以直接去元素.假设x是要测试的东西,如果你知道至少有一个元素匹配,那么:
if (x[0].checked) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
如果您不确定并且想要对冲您的赌注:
if (x[0] && x[0].checked) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
但除非你处于一个非常紧密的循环中,否则请使用你最容易阅读的内容,因为性能差异并不重要.我发现最后一个很容易阅读,我知道它们非常快,所以我使用它们.但是如果你发现它们很尴尬,那就用你最喜欢的东西.is(':checked')如果你喜欢它并且你没有看到它的实际性能损失(这不太可能禁止,再次,某种紧密的循环),使用没有害处.
注:程度,其prop更直接比is通过浏览器的不同而不同.prop不仅仅是对房产的直接检查,它首先会经历几个层次的间接; 并且is不一定是非常复杂的:在WebKit浏览器,例如,is可以像的WebKit提供一个函数,以测试一个元素是否选择器相匹配,并支持相当直接的:checked本身; 在Firefox(以及我怀疑,IE)上,is会产生大量的函数调用,因为这个看似简单的选择器可以通过Sizzle的内部工作.
| 归档时间: |
|
| 查看次数: |
983 次 |
| 最近记录: |