2015-10-20 174 views
-1

在firefox和chrome中,以下代码有效。它使用jQuery append命令填充一些html元素。Internet Explorer 11 jQuery parent.html('')问题

form_fields.filter('select').each(function() { 
    var element=$(this); 
    var parent=$(this).parent(); 

    var label=parent.find('label'); 

    var select=$('<div class="select-wrapper "></div>').append(parent.find('select')); 

    parent.html(''); //removed 

    parent.append(label); 
    parent.append(select); 
}); 

当我在Internet Explorer上测试它的父元素不会被填充。删除parent.html('')在Internet Explorer上工作,父标签被填充。为什么会发生?

+0

不知道什么是“正确”,但如果你关心它,为什么要“杀死”元素('parent.html('');')? – Amit

+3

'.innerHTML.toString()'? '.innerHTML' ___是一个字符串。 – Cerbrus

+0

设置一个MCVE,并解释你想要达到的效果。 – Amit

回答

1

可能的原因您的问题是,这样做:

parent.html(''); 

你清空parent元素,这是label[0]的祖先。显然,那空洞label[0](这是令人惊讶的说实话),并因此label[0].innerHTML不起作用(可能会抛出)。

你应该空的,如果你想使用它里面的元素的HTML。