IE7中使用Jquery動態操作name問題

2022-01-11 04:37:54 字數 2565 閱讀 6552

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

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

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

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

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

ok!ie8相容模式:

??為什麼 $("#input").attr("name")取到的是修改後的值,而$("#div").html() 取到的name還是原先的值??

f12檢視生成的html

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

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

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

<

form

id="form1"

runat

="server"

>

<

div

id="div"

>

<

input

id="input"

name

="1"

value

="123"

type

="text"

/>

div>

<

div

id="div2"

>

div>

form

>

<

script

src="jquery-1.6.4.min.js"

>

script

>

<

script

>

//alert("name:" + $("#input").attr("name") + "***html:" + $("#div").html());$("

#input

").attr(

"name",

"myname");

$("#div2

").html($(

"#div

").html());

varnameval =$(

"#div2

").find(

"input[name='myname']

").val();

alert(nameval);

script

>

這樣  在ie8和谷歌瀏覽器 取值正常,在ie8相容模式卻取不到值。【不要問為什麼非要這麼賦值取值,這是demo'類似於'的實現,且是乙個框架】

解決方案:

1.直接用jquery修改name 然後訪問name是ok的,雖然 中間是生成了submitname 。

2.可以先$("#div2").html($("#div").html()); 然後在修改.attr("name", "myname");

3.可以直接拼接html。    $("#div").html("")

IE7使用技巧

下面是我的internet explorer 7的一些使用心得,寫出來與大家共享,都是一些基本的設定,滿足一般的生活上網瀏覽使用 1 常用基本快捷鍵 更多請參考或者ie的幫助文件 選項卡 開啟新的選項卡 ctrl t 開啟快速選項卡檢視 ctrl q 切換到下乙個選項卡 ctrl tab 側欄 開啟...

ie7中overflow hidden無效解決辦法

q ie7中,設定了height,overflow hidden 還是無效,樣式還亂了 a 當父元素的直接子元素或者下級子元素的樣式擁有position relative 屬性時,父元素的overflow hidden 屬性就會失效。解決辦法 我們在ie 6 7 內發現子元素會超出父元素設定的高度,...

在IE7中使用其他編輯器檢視網頁原始檔

那麼,如果讓ie7在檢視網頁原始檔時自動呼叫我們喜愛的文字編輯器而不是預設的記事本呢?1 在開始選單的搜尋框中輸入 regedit 按回車,開啟登錄檔編輯器。windows vista將彈出相應的uac提示視窗,輸入管理員密碼或確認。2 找到下列登錄檔分支 hkey local machinesof...