jQuery设置元素attribute之特殊属性

时间:2023-03-09 03:30:16
jQuery设置元素attribute之特殊属性

一般我们使用.attr()对某个dom元素设置attribute属性。今天在使用过程中发现在给input设置disabled属性为true时,最终元素disabled属性值解析成了disabled,并不是所需要的true。

查看jQuery的源码后才发现,jQuery内置有个属性集合,当要设置的属性在这个集合里面的时候,值就统一设置为该属性。

这个集合的名称为jQuery.expr.match.bool。对应的正则表达式值如下

/^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$/i

刚开始没有去看源码的时候,还以为是HTML的机制呢,个人觉得jQuery这样做的原因应该是为了符合html的规范吧。