IE7中無法使用Jquery動態操作頁面元素的name屬性,要怎麼解決這個問題呢?本文主要和大家分享,解決IE7中使用jQuery動態操作name問題,需要的朋友參考下吧,希望能幫助大家。
問題:IE7中無法使用Jquery動態操作頁面元素的name屬性。
在專案中有出現問題,某些客戶的機器偶爾會有,後台取不到前台的資料值。
然開發和測試環境總是無法重現問題。坑爹之處就在於此,不能重現就不能調試,就不能知道改了後還會不會有這樣的問題。
想想可能與客戶環境唯一不同就只有可能是js快取問題了,然後把所有的js檔案引用的地方都加上一個當前時間參數,然問題依然存在。
原本規定的版本就是IE8,所以也沒有想過會有版本相容問題,在說了咱用的是jquery,jqeruy的出現不就是號稱為了解決瀏覽器的兼容問題。
該死了問題,還真實版本問題。因為某些頁面需要用到IE8的相容模式,然相容模式其實就是像下相容,那不就是相容IE7 了麼?
於是本地用demo測試了下。
IE8:
ok!
IE8相容模式:
F12查看產生的html
擦 submitName 是什麼東東?明顯name沒有改變。 submitName 應該是jquery產生的 然後讀取name的時候 也是直接讀取的submitName 的值。
那 為什麼$("#p").html() 取的值中沒有submitName 呢 ? ?我也不知道jquery中的html方法是怎麼實現的~~
專案中的實作方式類似於:
這樣 在IE8和Google瀏覽器取值正常,在IE8相容模式卻取不到值。 【不要問為什麼非要這麼賦值取值,這是demo'類似於'的實現,並且是一個框架】
#解決方案:
1.直接用jquery修改name 然後訪問name是ok的,雖然中間是產生了submitName 。
2.可以先$("#p2").html($("#p").html()); 然後在修改.attr("name", "myname");
3.可以直接拼接html。 $("#p").html("")
最後百度了下,原來是IE7不能用document.getElementsByName()存取js動態建立和修改後的name值。
相關推薦:
實例詳解node.js用fs.rename強制重新命名或移動資料夾
如何解決IE8瀏覽器下dom元素不區分name屬性大小寫問題
#以上是IE7中使用jQuery動態操作name問題解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!