1. 程式人生 > >用jquery動態新增html任何標籤的自定義屬性

用jquery動態新增html任何標籤的自定義屬性

由於用到國際化,且使用jquery.numberformatter-1.1.3.js類庫。在對所有td做國際化時,發現有被重複國際化的現象。
國際化方法如:i18_data("#testTable tr td","${i18("jquery-numberformatter.local")}");即testTable 表的所有td將被國際化。
問題:呼叫上述方法對A表的列進行國際化後,再次呼叫上述方法對B表進行國際化時,發現會再次國際化A表的列後再國際化B表的列,這就導致A表被國際化兩次,出現數據錯誤。
經過仔細定位,還是沒能找到為什麼會再次國際化A表的原因,因此無法修復該問題。有可能是類庫的bug。

解決辦法:
為了防止被呼叫兩次,只能做一個標識,標識td已經被國際化。就動態的給每個被格式化的td加了一個隨意的屬性hf,方法如下:
var hf = $(this).attr('hf');
            if(null == hf || undefined == hf)
            {
               //執行國際化
                $(this).attr('hf',true);//設定標識已經被國際化。
            }

特意寫下來的原因是:說明了可以用JS動態新增html任何標籤的自定義屬性