IE6使用add方法添加optGroup的bug

合理的使用optGroup元素,可以极大地增强select下拉列表框的表现能力。我是比较喜欢在select中使用optGroup做数据分类的,不过不知道微软搞什么飞机,就这么一个html标签bug还真是不少。刚才又在使用DOM操作select添加optGroup时发现了问题。

    如下简单的代码,我们会得到什么结果呢?
None.gif < select  id ="slt1" >
None.gif </ select >
ExpandedBlockStart.gif ContractedBlock.gif < script  language ="javascript" > dot.gif
InBlock.gifdocument.body.onload  =   function ()
ExpandedSubBlockStart.gifContractedSubBlock.gif dot.gif {
InBlock.gif     for  (  var  i = 0  ; i  <   3  ;  ++ i )
ExpandedSubBlockStart.gifContractedSubBlock.gif     dot.gif {
InBlock.gif         var  group  =  document.createElement('OPTGROUP');
InBlock.gif        group.label  =  'group  1 - '  +  i;  
InBlock.gif        slt1.add(group);
ExpandedSubBlockEnd.gif    }
ExpandedBlockEnd.gif} ;   
None.gif </ script >

    按我们对select的add方法的理解,似乎应该得到分组列表框:,但实际上我们得到的列表框却是:。为什么会是第二种情况呢 hitwall.gif?那么我们来看看IE DOM操作后生成的Html到底是什么呢?
None.gif < SELECT  id =slt1 >
None.gif     < OPTGROUP  label ="group 1-0" >
None.gif         < OPTGROUP  label ="group 1-2" >
None.gif         </ OPTGROUP >
None.gif         < OPTGROUP  label ="group 1-1" >
None.gif         </ OPTGROUP >
None.gif </ SELECT >

    这是什么东东啊?optGroup怎么又嵌到optGroup里面去了?optGroup不支持mutli-hierarhical呀!

    原来我们必须改用通用的DOM操作方式,即使用appendChild(element)方法才能获得正确的select列表的分组结构,示例代码如下:
None.gif < select  id ="slt2" >
None.gif </ select >
ExpandedBlockStart.gif ContractedBlock.gif < script  language ="javascript" > dot.gif
InBlock.gifdocument.body.onload  =   function ()
ExpandedSubBlockStart.gifContractedSubBlock.gif dot.gif {
InBlock.gif    for  (  var  i = 0  ; i  <   3  ;  ++ i )
ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif {
InBlock.gif        var  group  =  document.createElement('OPTGROUP');
InBlock.gif       group.label  =  'group  2 - '  +  i;
InBlock.gif       slt2.appendChild(group);
ExpandedSubBlockEnd.gif   }
ExpandedBlockEnd.gif} ;   
None.gif </ script >

    至于add方法的问题,只能算作optGroup的又一个bug了

本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值