解決IE7中使用jQuery動態(tài)操作name問題
問題:IE7中無法使用Jquery動態(tài)操作頁面元素的name屬性。
在項目中有出現(xiàn)問題,某些客戶的機器偶爾會有,后臺取不到前臺的數(shù)據(jù)值。
然開發(fā)和測試環(huán)境總是不能重現(xiàn)問題??拥幘驮谟诖?,不能重現(xiàn)就不能調(diào)試,就不能知道改了后還會不會有這樣的問題。
想想可能與客戶環(huán)境唯一不同就只有可能是js緩存問題了,然后把所有的js文件引用的地方都加上一個當(dāng)前時間參數(shù),然問題依然存在。
本來規(guī)定的版本就是IE8,所以也沒有想過會有版本兼容問題,在說了咱用的是jquery,jqeruy的出現(xiàn)不就是號稱為了解決瀏覽器的兼容問題么。
該死了問題,還真實版本問題。因為某些頁面需要用到IE8的兼容模式,然兼容模式其實就是像下兼容,那不就是兼容IE7 了么?
于是本地用demo測試了下。
<form id="form1" runat="server"> <div id="div"> <input id="input" name="1" value="123" /> </div> </form> <script src="jquery-1.6.4.min.js"></script> <script> $("#input").attr("name", "myname"); alert("name:" + $("#input").attr("name") + "***html:" + $("#div").html()); </script>
IE8:
ok!
IE8兼容模式:
??為什么 $("#input").attr("name")
取到的是修改后的值,而$("#div").html()
取到的name還是原先的值??
F12查看生成的html
擦 submitName 是什么東東?明顯name沒有改變。submitName 應(yīng)該是jquery生成的 然后讀取name的時候 也是直接讀取的submitName 的值。
那 為什么$("#div").html()
取的值中沒有submitName 呢 ?? 我也不知道jquery中的html方法是怎么實現(xiàn)的~~
項目中的實現(xiàn)方式類似于:
<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()); var nameVal = $("#div2").find("input[name='myname']").val(); alert(nameVal); </script>
這樣 在IE8和谷歌瀏覽器 取值正常,在IE8兼容模式卻取不到值?!静灰獑枮槭裁捶且@么賦值取值,這是demo'類似于'的實現(xiàn),且是一個框架】
解決方案:
1.直接用jquery修改name 然后訪問name是ok的,雖然 中間是生成了submitName 。
2.可以先$("#div2").html($("#div").html());
然后在修改.attr("name", "myname");
3.可以直接拼接html。 $("#div").html("<input id="input" name="myname" value="123" type="text" />")
最后百度了下,原來是 IE7不能用document.getElementsByName()訪問js動態(tài)創(chuàng)建和修改后的name值。
總結(jié)
以上所述是小編給大家介紹的解決IE7中使用jQuery動態(tài)操作name問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
基于jquery的禁用右鍵、文本選擇功能、復(fù)制按鍵的實現(xiàn)代碼
有時候因為某些原因,需要禁止用戶的右鍵、文本選擇功能、復(fù)制按鍵等操作,那么就可以參考下面的代碼2013-08-08jQuery 追加元素的方法如append、prepend、before
jQuery - 追加元素的方法有很多如append、prepend、before等等,下面為大家詳細(xì)介紹下2014-01-01詳解JavaScript for循環(huán)中發(fā)送AJAX請求問題
這篇文章主要為大家剖析了JavaScript for循環(huán)中發(fā)送AJAX請求問題,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-03-03jQuery實現(xiàn)鼠標(biāo)雙擊Table單元格變成文本框及輸入內(nèi)容后更新到數(shù)據(jù)庫的方法
這篇文章主要介紹了jQuery實現(xiàn)鼠標(biāo)雙擊Table單元格變成文本框及輸入內(nèi)容后更新到數(shù)據(jù)庫的方法,涉及jQuery響應(yīng)鼠標(biāo)事件動態(tài)操作頁面元素及基于get實現(xiàn)ajax交互保存數(shù)據(jù)的相關(guān)技巧,需要的朋友可以參考下2015-11-11jquery中trigger()無法觸發(fā)hover事件的解決方法
jquery中trigger() 方法觸發(fā)被選元素的指定事件類型了,但有使用過程中會碰到一些問題了,下面我們一起來看看jQuery中trigger()觸發(fā)hover事件疑問,希望對各位有幫助。2015-05-05