【新】切换 HTML 布尔属性的新方法 Element.toggleAttribute()


HTML 中有一些特色叫做布尔特色(Boolean Attribute),只需特色名存在,不论特色值是什么、存不存在,都代表对应的某个内部状态为 true,只需特色名不存在,才代表 false。 比如常见的 上的 disabled和readonly,或许 上的 controls、 loop 等。

怎么切换布尔特色的值

HTML 规范中内置的这些布尔特色,都会在 DOM 上存在同名(大小写可能不同,比如 readonly 的反射特色叫 readOnly)的反射特色,比如 HTML 是 的话,就会存在个input.disabled 特色且初始值是 true,你还可以通过 DOM 特色来修正正本的 HTML 特色,比如实行 input.disabled = false后,HTML 中的 disabled特色就不存在了。所以假定foo是一个内置的布尔特色,我们可以通过 element.foo = !element.foo这样简略的代码来完结布尔特色的切换。

但假设我们想切换的特色不是一个 HTML 中内置的布尔特色,而是在本身业务中,比如说在一般的 div标签上界说的一个布尔特色呢?再想想未来的规范的话,我们自己创建的一个 custom element 上界说的布尔特色该怎样切换呢?那可能就需要自己用 setAttribute()/removeAttribute()方法封装一个函数了。

Element.toggleAttribute() 来了

input.toggleAttribute('disabled') // 相当于现在的 input.disabled = !input.disabled input.toggleAttribute('disabled', input.value > 10) // 相当于现在的 input.disabled = input.value > 10 


你可能有过将一个非布尔特色的值来回在某两个值比如 foo 和bar之间切换的需求,toggleAttribute() 不是用来干这个的。

浏览器的完结进展 现已完结了,其它三大浏览器厂商也现已明晰表态会完结这个方法。

郑州割包皮医院哪家好:http://www.zzchanghong110.com/郑州同济医院割包皮:http://www.zzchanghong110.com/郑州割包皮好医院:http://www.zzchanghong110.com/郑州哪家男科医院好:http://www.zzchanghong110.com/郑州检查男科疾病去哪家医院:http://www.zzchanghong110.com/郑州做包皮手术哪家医院便宜:http://www.zzchanghong110.com/郑州专业男科医院:http://www.zzchanghong110.com/郑州割包皮医院:https://yyk.familydoctor.com.cn/12248/

猜你喜欢

转载自blog.csdn.net/qq_42606051/article/details/80949711