jquery中attr()和prop()方法的区别

attr(name|properties|key,value|fn)

返回值:String

类似于$("...").attr("checked");返回的是'checked'或者undefined

官方定义:获取匹配的元素集中第一个元素的属性(property)值或设置每一个匹配元素的一个或多个属性。

注意:在jQuery 1.6中,当属性没有被设置时候,.attr()方法将返回undefined。若要检索和更改DOM属性,比如元素的checked, selected, 或 disabled状态,要使用.prop()方法

 参数name 描述: 返回文档中所有图像的src属性值。

$("img").attr("src");

参数properties 描述:为所有图像设置src和alt属性。

$("img").attr({ src: "test.jpg", alt: "Test Image" });

参数key,回调函数 描述:把src属性的值设置为title属性的值。

$("img").attr("title", function() { return this.src });

prop(name|properties|key,value|fn)

返回值:JQuery

类似于$("...").attr("checked");返回的是true或者false

官方定义:获取匹配的元素集中第一个元素的属性(property)值或设置每一个匹配元素的一个或多个属性。

参数name 描述:选中复选框为true,没有选中为false

$("input[type='checkbox']").prop("checked");

参数properties 描述:禁用页面上的所有复选框。

$("input[type='checkbox']").prop({
  disabled: true
});

参数key,value 描述:禁用和选中所有页面上的复选框。

$("input[type='checkbox']").prop("disabled", false);
$("input[type='checkbox']").prop("checked", true);

参数key,回调函数 描述:通过函数来设置所有页面上的复选框被选中。

$("input[type='checkbox']").prop("checked", function( i, val ) {
  return !val;
});

attr()实际上是对html元素上的属性进行设置或者获取.

而prop()是对我们用js/jq获取到的DOM元素对象进行属性设置或者获取.

原文地址:https://www.cnblogs.com/conlover/p/11217162.html