首頁  >  文章  >  web前端  >  IE7中使用jQuery動態操作name問題解決方法

IE7中使用jQuery動態操作name問題解決方法

小云云
小云云原創
2017-12-29 13:33:191489瀏覽

IE7中無法使用Jquery動態操作頁面元素的name屬性,要怎麼解決這個問題呢?本文主要和大家分享,解決IE7中使用jQuery動態操作name問題,需要的朋友參考下吧,希望能幫助大家。

問題:IE7中無法使用Jquery動態操作頁面元素的name屬性。

在專案中有出現問題,某些客戶的機器偶爾會有,後台取不到前台的資料值。

然開發和測試環境總是無法重現問題。坑爹之處就在於此,不能重現就不能調試,就不能知道改了後還會不會有這樣的問題。

想想可能與客戶環境唯一不同就只有可能是js快取問題了,然後把所有的js檔案引用的地方都加上一個當前時間參數,然問題依然存在。

原本規定的版本就是IE8,所以也沒有想過會有版本相容問題,在說了咱用的是jquery,jqeruy的出現不就是號稱為了解決瀏覽器的兼容問題。

該死了問題,還真實版本問題。因為某些頁面需要用到IE8的相容模式,然相容模式其實就是像下相容,那不就是相容IE7 了麼?

於是本地用demo測試了下。


  

      

 
 <script></script>  <script> $("#input").attr("name", "myname"); alert("name:" + $("#input").attr("name") + "***html:" + $("#p").html()); </script>

IE8:

ok!

IE8相容模式:

IE7中使用jQuery動態操作name問題解決方法

F12查看產生的html

擦 submitName 是什麼東東?明顯name沒有改變。 submitName 應該是jquery產生的 然後讀取name的時候 也是直接讀取的submitName 的值。

那 為什麼$("#p").html() 取的值中沒有submitName 呢 ? ?我也不知道jquery中的html方法是怎麼實現的~~

專案中的實作方式類似於:


  

      

  

  

 
 <script></script>  <script> //alert("name:" + $("#input").attr("name") + "***html:" + $("#p").html()); $("#input").attr("name", "myname"); $("#p2").html($("#p").html()); var nameVal = $("#p2").find("input[name=&#39;myname&#39;]").val(); alert(nameVal); </script>

這樣  在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屬性大小寫問題

利用html的name屬性取得dom元素

#

以上是IE7中使用jQuery動態操作name問題解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn