欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決IE下select標(biāo)簽innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)

 更新時(shí)間:2010年05月13日 17:45:37   作者:  
在ie下面使用innerHTML來插入option選項(xiàng)的話,ie會(huì)去掉前面的<option>,并拆分成多個(gè)節(jié)點(diǎn),這樣會(huì)造成select的出錯(cuò)
前言:
這是一個(gè)老bug了,現(xiàn)在提供一個(gè)完美解決方案。由于我一直是用createElement來創(chuàng)建動(dòng)態(tài)的option并添加,所以一直沒有遇到這個(gè)問題,但是每個(gè)人寫代碼風(fēng)格不同,有的人就喜歡寫字符串形式的標(biāo)簽并用innerHTML插入,這不就有問題了,為了方便不同編碼風(fēng)格的人,我封裝了一個(gè)方法,用于解決ie的這個(gè)bug和兼容5大瀏覽器,這樣大家都可以用一個(gè)方法來實(shí)現(xiàn)不同的風(fēng)格,便于維護(hù)管理。

bug描述:
在ie下面使用innerHTML來插入option選項(xiàng)的話,ie會(huì)去掉前面的<option>,并拆分成多個(gè)節(jié)點(diǎn),這樣會(huì)造成select的出錯(cuò),不是沒有插進(jìn)去,而是節(jié)點(diǎn)在轉(zhuǎn)換時(shí)出問題了,微軟對(duì)這個(gè)bug也有描述,并提供了兩個(gè)解決方案,大家可以自己搜索一下,我大概提下微軟的兩個(gè)方案。
1,使用createElement,這個(gè)是正規(guī)渠道,要出錯(cuò)還真有問題了。
2,插入完整的select字符串,到div中。

實(shí)現(xiàn):
  原理:
  既然是使用innerHTML的人,肯定是想用字符串來插入option了,這里主要就是解決這人人群,當(dāng)然你也可以傳入createElement對(duì)象來插入。
  對(duì)于傳入的參數(shù)會(huì)做個(gè)判斷,看是elementObj還是字符串,如果是elementObj那么就使用標(biāo)準(zhǔn)的add方法加入,并做兼容處理。如果是字符串則使用div包裝完整的select并轉(zhuǎn)換成dom對(duì)象用appendChild來加入。

  注意:
  b$.type.isElement(arg)是bBank里面用來判斷對(duì)象是否是element元素的方法
  b$.browser.isIE()是bBank里面用來判斷是否是ie的方法
  b$.parseDom(str)是bBank里面用來轉(zhuǎn)換字符串為標(biāo)準(zhǔn)dom的方法,在我前面的博客中有專門講解
  bBank 框架介紹:http://www.cnblogs.com/bruceli/archive/2010/04/15/bBank.html
復(fù)制代碼 代碼如下:

      var sltObj=document.getElementById('xx');//獲取select對(duì)象,這里只是給個(gè)例子,可以按自己習(xí)慣來獲取
      function addOption(obj, arg) {
if (b$.type.isElement(arg)) {
if (b$.browser.isIE()) obj.add(arg);
else obj.add(arg, null);
return;
}
var str = '<select>' + arg + '</select>';
var slt = b$.parseDom(str)[0];
for (var i = 0, num = slt.length; i < num; i++) {
obj.appendChild(slt[0]);
}
};

  使用:
復(fù)制代碼 代碼如下:

    addOption(sltObj, '<option>a</option>');


END
到這里就結(jié)束了,在這里向大家推薦一個(gè)我自己寫的js框架,上面的這個(gè)方法集成在框架里面了
使用:b$('obj').addOption(arg);

相關(guān)文章

  • JS解決?Array.fill()參數(shù)為對(duì)象指向同一個(gè)引用地址的問題

    JS解決?Array.fill()參數(shù)為對(duì)象指向同一個(gè)引用地址的問題

    這篇文章主要介紹了JS解決?Array.fill()參數(shù)為對(duì)象指向同一個(gè)引用地址問題,解決方案使用map返回出不同的引用的地址,fill參數(shù)可隨意填寫(不為空),主要是map函數(shù)中返回的數(shù)據(jù),需要的朋友可以參考下
    2023-02-02
  • JavaScript中字符串的常用方法總結(jié)

    JavaScript中字符串的常用方法總結(jié)

    這篇文章主要為大家總結(jié)了一些JavaScript中字符串的常用方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JavaScript有一定的幫助,需要的可以參考一下
    2022-12-12
  • JavaScript函數(shù)內(nèi)部屬性和函數(shù)方法實(shí)例詳解

    JavaScript函數(shù)內(nèi)部屬性和函數(shù)方法實(shí)例詳解

    函數(shù)是由事件驅(qū)動(dòng)的或者當(dāng)它被調(diào)用時(shí)執(zhí)行的可重復(fù)使用的代碼塊。通過本文給大家介紹JavaScript函數(shù)內(nèi)部屬性和函數(shù)方法,感興趣的朋友一起學(xué)習(xí)吧
    2016-03-03
  • JavaScript 鏈表定義與使用方法示例

    JavaScript 鏈表定義與使用方法示例

    這篇文章主要介紹了JavaScript 鏈表定義與使用方法,結(jié)合實(shí)例形式分析了JavaScript 鏈表的基本功能、定義與使用方法,需要的朋友可以參考下
    2020-04-04
  • 基于JavaScript Array數(shù)組方法(新手必看篇)

    基于JavaScript Array數(shù)組方法(新手必看篇)

    下面小編就為大家?guī)硪黄贘avaScript Array數(shù)組方法(新手必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • javascript動(dòng)態(tài)加載實(shí)現(xiàn)方法一

    javascript動(dòng)態(tài)加載實(shí)現(xiàn)方法一

    這兩天,沒什么太多的事情,好吧,我承認(rèn),是我這兩天不想做公司的項(xiàng)目,因?yàn)槲彝话l(fā)奇想,其實(shí)也不算突發(fā)奇想,算是對(duì)以前的想法的實(shí)現(xiàn),就是把JS當(dāng)做Java來寫
    2012-08-08
  • js前端實(shí)現(xiàn)登錄拼圖驗(yàn)證功能

    js前端實(shí)現(xiàn)登錄拼圖驗(yàn)證功能

    行為驗(yàn)證碼通過用戶的操作來完成驗(yàn)證,常見的行為驗(yàn)證碼有拖動(dòng)式和點(diǎn)觸式,下面這篇文章主要給大家介紹了關(guān)于js前端實(shí)現(xiàn)登錄拼圖驗(yàn)證功能的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • countup.js實(shí)現(xiàn)數(shù)字動(dòng)態(tài)疊加效果

    countup.js實(shí)現(xiàn)數(shù)字動(dòng)態(tài)疊加效果

    這篇文章主要為大家詳細(xì)介紹了countup.js實(shí)現(xiàn)數(shù)字動(dòng)態(tài)疊加效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • uniapp實(shí)現(xiàn)橫屏簽字版

    uniapp實(shí)現(xiàn)橫屏簽字版

    這篇文章主要為大家詳細(xì)介紹了uniapp實(shí)現(xiàn)橫屏簽字版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 原生JavaScript實(shí)現(xiàn)remove()和recover()功能示例

    原生JavaScript實(shí)現(xiàn)remove()和recover()功能示例

    這篇文章主要介紹了原生JavaScript實(shí)現(xiàn)remove()和recover()功能,結(jié)合實(shí)例形式分析了javascript實(shí)現(xiàn)類似jQueryremove()和recover()功能的自定義函數(shù),需要的朋友可以參考下
    2018-07-07

最新評(píng)論