IE8不克隆元素

时间:2013-12-21 23:05:58

标签: javascript jquery html css

IE困惑了我。我有两个清单。一个容器。

第一个列表中填充了<option>个分支。母亲分支。

现在第二个清单是空的。

然后用<div>的容器填充所有母分支的所有子分支<option>。他们中有很多人。但是这个容器是隐藏的。

我编写了jQuery代码,用于选择匹配元素的集合,这些元素是所选母分支的子元素,并将它们克隆到子分支列表中。

检查此小提琴以查看其实际效果:http://jsfiddle.net/mostafatalebi/6WQ9x/

以下是JavaScript代码:

$(document).ready(function(){
    $('#branches').on('change', 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) {                            
                var tempItem = $(this);
                // $("#sub").append('this is : ');
                $(this).clone().appendTo("#sub");
            }
        });
    });
});

它适用于IE以外的所有地方。

有趣的一点是当我把以下行而不是clone()时,IE工作:

$("#sub").append('IE is the worst browser');

IE似乎与$(this)clone()

有问题

旧版本的jQuery已经过测试。所有人都有同样的问题。

1 个答案:

答案 0 :(得分:2)

我找到了这个问题的答案。

似乎<option>的行为与另一种行为截然不同。

我所做的是,我使用<input>标签而不是标签,用“子”分支的ID填充“value”属性,并填充“id”属性,并带有子分支的parent_id用“par”字符串,最后用“name”属性填充子分支的标题。相应地,我在jQuery中检索它们并且它有效。

所有这些努力都是为了适应IE8,其使用非常有限,但客户仍然坚持。