Javascript jQuery代码在IE中不起作用

Javascript jQuery代码在IE中不起作用,javascript,jquery,html,css,Javascript,Jquery,Html,Css,请检查这把小提琴,看看为什么它在IE8中不起作用 有两个列表和一个容器 列表A是所有字段的列表,第二个列表为空 然后是一个容器,其中包含所有分支的所有子分支。然后,通过单击一个分支,jquery代码从容器中复制匹配的元素集,并将它们克隆到空的第二个容器中。这在FF中有效,但在IE中失败。你可以玩小提琴。以下是jquery: $(document).ready(function(){ $('#branches').children('option').on('click',

请检查这把小提琴,看看为什么它在IE8中不起作用

有两个列表和一个容器

列表A是所有字段的列表,第二个列表为空

然后是一个容器,其中包含所有分支的所有子分支。然后,通过单击一个分支,jquery代码从容器中复制匹配的元素集,并将它们克隆到空的第二个容器中。这在FF中有效,但在IE中失败。你可以玩小提琴。以下是jquery:

$(document).ready(function(){


        $('#branches').children('option').on('click', function(){
            var branch = $(this).val();
            var subholder = $('#subbranch-holder');             
            $('#sub').empty();                                          
            $('#sub').html("<option value='false'>انتخاب زیر شاخه ها</option>");
            // console.log(subholder.children('option').length);
            subholder.children('option').each(function(){
            if($(this).attr('id') == 'par'+branch)
            {                           
                $(this).clone().appendTo("#sub");
            }
            });
        });

});
$(文档).ready(函数(){
$(“#分支”).children('option').on('click',function(){
var branch=$(this.val();
var subholder=$(“#支行持有人”);
$('#sub').empty();
$(“#sub”).html(“ا;
//console.log(subholder.children('option').length);
subholder.children('option')。每个(函数(){
if($(this.attr('id')=='par'+分支)
{                           
$(this.clone().appendTo(“#sub”);
}
});
});
});

使用jQuery版本1.*而不是版本2...
并更改此行:

$('#branches').children('option').on('click', function(){
为此:

$('#branches').on('change', function(){

编辑:
如果您使用有效的html,那么您的代码将在其他浏览器中工作。
看到这个:

您确定文档准备好了吗?已编辑-无所谓。是的,它已经准备好了。您应该使用jQuery 1.10作为旧版(包括6-8);jQuery的2.x分支消除了支持那些旧浏览器所需的缺点。@DavidThomas是对的。虽然我们现在有jQuery 1.10.x用于旧IE,但是jQuery 2.0放弃了对IE版本<10的支持。不过不要担心,1.10有完全相同的API。选项没有单击事件…很抱歉,它不起作用。它克隆代码,但只克隆标记的前半部分,克隆内容(即选项的标题)和结束标记。为什么?重复id无效,如果您验证html,它将在浏览器上更好地执行。我没有错。请参阅更新的JSFIDLE。