当前位置: 代码迷 >> Web前端 >> JQuery动态生成页面select元素时在IE上的BUG
  详细解决方案

JQuery动态生成页面select元素时在IE上的BUG

热度:31   发布时间:2012-11-23 00:03:43.0
JQuery动态生成页面select元素时在IE下的BUG

场景:想要制作一个级联列表(A、B),A改变时B也随着改变,那么在初始化时B应该为一个空下拉列表,但是如果在IE下这样写:

?

jQuery(document).ready(function($){
    $("body").append($("<select id='a'><option value='a'>A</option><option value='b'>B</option></select>")
       .change(function(){
          $("#b").empty().append($("<option>"+this.value+"</option>"));
     }));

    $("body").append("<select id='b'></select>");
});

?

在IE8下当A发生改变时B并不能动态获得相应的选项(option),FireFox没有问题。经过测试,如果把B元素放到页面上(<body><select id="b"></select></body>)而不是动态生成则没有问题。

?

而如果非要动态生成的话,经过测试在生成时为b增加一个空选项也不会有问题,即将$("body").append("<select id='b'></select>");改为$("body").append("<select id='b'><option></option></select>");

?

不知道这应该归咎于JQuery还是IE 8.0.7600.16385。

  相关解决方案