jQuery 的 attr()、prop()

作者:vkvi 来源:ITPOW(原创) 日期:2020-3-6

一、谈谈用 attr、prop 取 input 的 readonly、disabled

以 <input type="text" 和 readonly 为例:

attr("readonly") 只会有两种结果:readonly、undefined。input 标签中只要写了 readonly 属性名,不管有没有写属性值,不管写的属性值是什么,都是 readonly;其他情况是 undefined。

prop("readonly") 只会有两种结果:true、false。input 标签中只要写了 readonly 属性名,不管有没有写属性值,不管写的属性值是什么,都是 true;其他情况是 false。

对于 type="radio"、type="checkbox",以及 disabled,情况类似。

二、谈谈用 attr、prop 取 select 的 readonly、disabled

除了 prop("readonly") 总是返回 undefined 外,其他和前面的 input 一样。

三、程序改变 disabled 的值

$(".t").attr("disabled", ""),这是不行的,因为 disabled 赋空值也是会起作用的。

可以用:$(".t").removeAttr("disabled") 或者 $(".t").prop("disabled", false),改变值后,再用 attr、prop 去取值,取到的都是最新状态的值。

四、人为改变 checked 值

由于人为无法改变 disabled,所以我们讲讲人为改变 checkbox 的 checked 值。

当人为改变 checkbox 的 checked 时:

  • prop("checked") 返回的是最新的选中状态。

  • 而 attr 始终是初始值或者程序改变后的值:undefined 或者 checked,它无法响应人工点击改变的 checked 值。

相关阅读

相关文章