elem.is(':checked')vs elem.prop(' checked')

时间:2017-04-18 05:35:15

标签: jquery

正如标题所说,elem.is(':checked')elem.prop('checked')之间存在差异。

我个人使用elem.is(':checked'),因为函数is解释了我将返回布尔值。

我什么时候选择一个而不是为什么?

2 个答案:

答案 0 :(得分:2)

根据This SO Question答案。

如果你使用1.6.0或更高版本,prop(' checked')是最直接的jQuery方式。 jQuery不必解析和处理选择器来弄清楚要做什么。

  

注意:道具更直接的程度因人而异   浏览器。道具不仅仅是对房产的直接检查,它确实可以   先通过几个层次的间接;并且不是   必然非常复杂:例如,在WebKit浏览器上就可以   是相当直接的,因为WebKit提供了一个测试是否的功能   element匹配一个选择器,并支持:native native;在Firefox上   (而且,我怀疑,IE),是导致大量函数调用的结果   这个看似简单的选择器通过它的内脏工作   嘶嘶声。

测试结果: jQuery prop('checked') vs. is(':checked')

答案 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