在給護(hù)理系統(tǒng)升級功能的過程中,其中的一個多選功能,由于選項太多,客戶那邊想要我們做一個一鍵全選的功能,減少操作,更方便使用。
讓人頭大的地方來了,大家都知道需要讓checkbox為選中狀態(tài)的話,只需要給他加上一個屬性就可以了,屬性checked=true的時候,該項就是一個選中的狀態(tài),但是應(yīng)用到Apicloud中,我們就需要使用到Apicloud的自帶的方法來給DOM添加屬性,使用attr方法給DOM增加checked=true的屬性,如下圖。
然而,在執(zhí)行這個點(diǎn)擊事件的時候他竟然,沒有任何效果。點(diǎn)了跟沒點(diǎn)一個樣。內(nèi)心真的崩潰。這竟然不生效。
于是呢我就去查了一下,為什么不生效,在js中用來操作屬性的方法有兩種,一種就是attr還有一種就是prop方法,這兩種方法有何不同呢?
attr()的話用于處理HTML標(biāo)簽的元素屬性,什么是元素屬性呢,就是為HTML元素提供附加信息的,例如a標(biāo)簽的href,img的src
prop()主要用于處理DOM元素的“屬性”(property),如 checked、selected、disabled 等。這些屬性通常與表單元素的狀態(tài)有關(guān)。
具體的使用情景還是得根據(jù)情況選擇使用這兩種方法,但是對于checked屬性來說,他們倆的處理結(jié)果我通過js實際運(yùn)行結(jié)果來展示一下
So,這里使用attr方法來操作checked屬性沒有效果也是正常的,只需要改用prop方法就可以了,但是Apicloud并沒有提供這個方法所以還是用jquery來實現(xiàn)吧.