javascript中可以建立以及引用一個元素,然後透過這個元素來取得或設定屬性。然而一個元素的屬性卻不是和腳本中所使用的屬性一一對應的。一個較偏僻的屬性,甚至連google也很難找到其對應的腳本屬性。今天我就遇到了這個問題:我需要建立一個label標記來對應一個複選框,使得點擊這個label標記也能選取複選框。這是很常用的技術,例如以下的程式碼:
就能夠讓點擊「置頂」兩個字時也能選取複選框。
在正常情況下,這段程式碼是直接寫到文件裡的,很容易完成。當是我需要透過腳本創建,就遇到了問題,一般腳本屬性和標記中寫的屬性是一樣的,如連結標記a的目標屬性href就保持一致。但因為for是javascript中的保留字,不能當作屬性。我在網路上找了很久也沒找到for對應的腳本屬性是什麼,於是就醞釀出下面的辦法來找到一個標記屬性對應的腳本屬性,現在就以找label的for屬性對應的腳本屬性為例:
原理是這樣,我先寫一個html標記到文件中,然後給要找的屬性一個唯一值,例子中是給label的for屬性複製"abcd",然後透過javascript引用這個元素,並且遍歷它的所有屬性,如果一個屬性的值等於abcd,那麼就可以認為這個屬性的名稱就是其對應的腳本屬性。就是透過這個方法,發現了label的for屬性對應的腳本屬性應該是:htmlFor。嘿嘿,還是比較怪異的哦。類似的方法還可以應用在找css的腳本屬性上,大家不妨試試。
<script> <BR> var lbl=document.getElementById("lblTest"); <BR> for(var p in lbl){ <BR> var s=eval("lbl."+p); <BR> if(s=="abcd")alert(p); <BR> } <BR></script>