IE 让我很困惑。我有两个 list 。一个容器。
第一个列表填充 <option>
的分支机构。母枝。
第二个列表目前为空。
容器是<div>
然后填充 <option>
所有母分支的所有子分支。其中有很多。但这个容器是隐藏的。
我编写了 jQuery 代码,用于选择作为所选母分支的子级的匹配元素集,并将它们克隆到子分支列表中。
检查这个 fiddle 以查看它的实际情况: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 已经过测试。所有人都有同样的问题。
最佳答案
我已经找到了这个问题的答案。
看来<option>
行为与其他完全不同。
我所做的是,我使用了 <input>
tag代替tag,用子分支的ID填充“value”属性,用子分支的parent_id填充“id”属性,前面加上“par”字符串,最后用“name”属性填充它带有子分支的标题。相应地,我在 jQuery 中检索了它们并且它起作用了。
所有这些努力都是为了适应使用非常有限的IE8,但客户仍然坚持。
关于javascript - IE8不克隆元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20724499/