1. 程式人生 > >【新】切換 HTML 布林屬性的新方法 Element.toggleAttribute()

【新】切換 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/