[FAQ] jQuery prop 与 attr 的区别

 

.prop() 获取匹配的元素集中第一个元素的属性(property)值 或 设置每一个匹配元素的一个或多个属性。

当设置 selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, 或 defaultSelected 必须使用这个方法。

若要取得每个匹配元素的属性值(property),请使用循环结构,如jQuery .each()或.map()方法。

 

attr 和 prop 分别是单词 Attributes 和 Properties 的缩写,都表示属性的含义,如果要从含义上来区分,attr 可理解为 特性,prop 理解为 属性。

checked 特性(attribute)值不会因为复选框的状态而改变,而checked属性(property)会因为复选框的状态而改变。

当我们设置默认值时用 checked="checked", 此时手动取消勾选,这个 attr 值并不会消失,然而 prop 值却会变成 false / true.

因此,跨浏览器兼容的方法来确定一个复选框是否被选中,是使用该属性(prop)。对于其他的动态属性,同样是true,比如 selected 和 value。

$("input").prop("disabled", false);
$("input").prop("checked", true);
$("input").val("someValue");

 

还要注意的是 .removeProp() 方法不应该被用来设置这些属性为 false。一旦原生的属性被移除,就无法再被添加。

 

cn: https://www.jquery123.com/prop/

en:https://api.jquery.com/prop/

Link:https://www.cnblogs.com/farwish/p/15064430.html

posted on 2021-08-06 18:33  ercom  阅读(82)  评论(0编辑  收藏  举报