在安排HTML元素的時候,ID這個屬性代表唯一的性質,如果存在相同ID的網頁元素,擷取該ID所得到的元素會是第一個,而利用javascript擷取元素的順序是由上而下,由左而右。
今天在處理動態調整表格的動作就遇到相同ID所導致的bug,一開始完全沒想到是相同ID造成的問題,而出問題的元素在一組radio上面。在安排好程式的邏輯之後,怎麼跑都跑不出正確的結果,接著嘗試將核取的元素value顯示出來開,結果都是核取第一個時會顯示,核取第二個就會變成undefined。
原本還想說會不會是因為value是放中文字,有衝突的問題?但編碼是utf8,應該不會有中文字衝突的問題才是,眼睛睛看著這個重複ID的錯誤持續發生而找不出來許久。後來突然開竅了,總算意識到ID有衝突,把ID屬性改成class就可以正常執行了。
另外,今天是第一次和系統的使用者有對上話,親自和使用者溝通系統的問題,而且一些小修正還是源自於自己觀察資料時主動加上的,有一點得意的感覺。不過,往後的修改最好還是先和使用者溝通過之後再處理,如果真的可行,經過溝通後的修改會更順暢一點。