解決IE7中使用jQuery動(dòng)態(tài)操作name問(wèn)題
問(wèn)題:IE7中無(wú)法使用Jquery動(dòng)態(tài)操作頁(yè)面元素的name屬性。
在項(xiàng)目中有出現(xiàn)問(wèn)題,某些客戶的機(jī)器偶爾會(huì)有,后臺(tái)取不到前臺(tái)的數(shù)據(jù)值。
然開(kāi)發(fā)和測(cè)試環(huán)境總是不能重現(xiàn)問(wèn)題??拥幘驮谟诖耍荒苤噩F(xiàn)就不能調(diào)試,就不能知道改了后還會(huì)不會(huì)有這樣的問(wèn)題。
想想可能與客戶環(huán)境唯一不同就只有可能是js緩存問(wèn)題了,然后把所有的js文件引用的地方都加上一個(gè)當(dāng)前時(shí)間參數(shù),然問(wèn)題依然存在。
本來(lái)規(guī)定的版本就是IE8,所以也沒(méi)有想過(guò)會(huì)有版本兼容問(wèn)題,在說(shuō)了咱用的是jquery,jqeruy的出現(xiàn)不就是號(hào)稱為了解決瀏覽器的兼容問(wèn)題么。
該死了問(wèn)題,還真實(shí)版本問(wèn)題。因?yàn)槟承╉?yè)面需要用到IE8的兼容模式,然兼容模式其實(shí)就是像下兼容,那不就是兼容IE7 了么?
于是本地用demo測(cè)試了下。
<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沒(méi)有改變。submitName 應(yīng)該是jquery生成的 然后讀取name的時(shí)候 也是直接讀取的submitName 的值。
那 為什么$("#div").html() 取的值中沒(méi)有submitName 呢 ?? 我也不知道jquery中的html方法是怎么實(shí)現(xiàn)的~~
項(xiàng)目中的實(shí)現(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兼容模式卻取不到值?!静灰獑?wèn)為什么非要這么賦值取值,這是demo'類似于'的實(shí)現(xiàn),且是一個(gè)框架】
解決方案:
1.直接用jquery修改name 然后訪問(wèn)name是ok的,雖然 中間是生成了submitName 。
2.可以先$("#div2").html($("#div").html()); 然后在修改.attr("name", "myname");
3.可以直接拼接html。 $("#div").html("<input id="input" name="myname" value="123" type="text" />")
最后百度了下,原來(lái)是 IE7不能用document.getElementsByName()訪問(wèn)js動(dòng)態(tài)創(chuàng)建和修改后的name值。
總結(jié)
以上所述是小編給大家介紹的解決IE7中使用jQuery動(dòng)態(tài)操作name問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
jquery實(shí)現(xiàn)的鼠標(biāo)下拉滾動(dòng)置頂效果
鼠標(biāo)下拉滾動(dòng)置頂效果想必大家在瀏覽網(wǎng)頁(yè)時(shí)都有遇到過(guò),下面有個(gè)不錯(cuò)的小例子,需要的朋友可以參考下2014-07-07
jQuery實(shí)現(xiàn)簡(jiǎn)潔的導(dǎo)航菜單效果
這篇文章主要介紹了jQuery實(shí)現(xiàn)簡(jiǎn)潔的導(dǎo)航菜單效果,簡(jiǎn)潔大方的導(dǎo)航菜單,需要的朋友可以參考下2015-11-11
jQuery 打造動(dòng)態(tài)漸變按鈕 詳細(xì)圖文教程
這是寫給web設(shè)計(jì)者和前端開(kāi)發(fā)者的教程,我們將演示如何使用Photoshop創(chuàng)建按鈕的sprite圖,然后是如何使用jQurey打造動(dòng)態(tài)漸變效果。2010-04-04
jquery ui resize 中border-box的bug修正
本文給大家分享的是jQuery ui resize中的一個(gè)樣式的小bug的解決方法,官方并沒(méi)有修復(fù),這里推薦給大家,有需要的小伙伴可以參考下。2015-04-04
jQuery 錨點(diǎn)跳轉(zhuǎn)滾動(dòng)條平滑滾動(dòng)一句話代碼
jQuery 錨點(diǎn)跳轉(zhuǎn)滾動(dòng)條平滑滾動(dòng)一句話代碼,需要的朋友可以參考下。2010-04-04
jQuery+ajax實(shí)現(xiàn)動(dòng)態(tài)添加表格tr td功能示例
這篇文章主要介紹了jQuery+ajax實(shí)現(xiàn)動(dòng)態(tài)添加表格tr td功能,結(jié)合實(shí)例形式分析了jQuery基于ajax動(dòng)態(tài)創(chuàng)建頁(yè)面table元素相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
jQuery Ajax請(qǐng)求狀態(tài)管理器打包
現(xiàn)在的網(wǎng)站,在一個(gè)網(wǎng)頁(yè)中有異步請(qǐng)求甚至許多個(gè)異步請(qǐng)求已經(jīng)不足為奇。Ajax已經(jīng)成為了現(xiàn)在網(wǎng)站必須的基本功能,使網(wǎng)頁(yè)應(yīng)用更接近于桌面應(yīng)用2012-05-05
jQuery鼠標(biāo)經(jīng)過(guò)方形圖片切換成圓邊效果代碼分享
這篇文章主要介紹了jQuery鼠標(biāo)經(jīng)過(guò)方形圖片切換成圓邊特效,圖片可以自行替換,推薦給大家,有需要的小伙伴可以參考下。2015-08-08

