场景:想要制作一个级联列表(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。