正如标题所说,elem.is(':checked')
和elem.prop('checked')
之间存在差异。
我个人使用elem.is(':checked')
,因为函数is
解释了我将返回布尔值。
我什么时候选择一个而不是为什么?
答案 0 :(得分:2)
根据This SO Question答案。
如果你使用1.6.0或更高版本,prop(' checked')是最直接的jQuery方式。 jQuery不必解析和处理选择器来弄清楚要做什么。
注意:道具更直接的程度因人而异 浏览器。道具不仅仅是对房产的直接检查,它确实可以 先通过几个层次的间接;并且不是 必然非常复杂:例如,在WebKit浏览器上就可以 是相当直接的,因为WebKit提供了一个测试是否的功能 element匹配一个选择器,并支持:native native;在Firefox上 (而且,我怀疑,IE),是导致大量函数调用的结果 这个看似简单的选择器通过它的内脏工作 嘶嘶声。
答案 1 :(得分:0)
.prop用于获取/设置元素的属性值。而 传递一个参数,它将返回属性(第一个参数) 值和传递两个参数时,它将设置第二个参数 作为第一个参数的值(元素' s属性)。
因此,elem.prop('checked')
将返回checked
属性的值。值的数据类型可以是基于属性的任何(布尔/字符串)。
如果您选中elem.prop('type')
,则会返回type
属性的值,该属性为string
数据类型,并将返回checkbox
作为输出。
.is用于检查元素是否匹配 参数中传递的条件为true / false。因此,数据类型 将始终是布尔值(true / false)。
因此,您可以检查元素是否已选中(或)未使用elem.is(':checked')
。在这里,:checked
被称为pseudo
元素,用于检查元素的state
(已选中/未选中)。
您还可以使用elem.is('[type="checkbox"]')
检查该元素是否为复选框。此处[type="checkbox"]
用于检查元素的属性type
是否为checkbox
。