我有这段代码可以在Firefox中运行
link = $('<a>link</a>');
var name = $("<h3 class='name section'>").append(link);
$('#container').append(name);
然而,这在IE8中不起作用。似乎根本没有创建名称。我尝试添加console.log('class of name'+name.attr('class'));
并在开发人员工具栏中,结果未定义。
因此,我四处寻找另一种选择,这有效:
var name = $('<h3>');
name.addClass('name');
name.addClass('section');
name = name.append(link);
它完全一样。我想知道IE8是否有反对使用HTML来定义DOM片段的事情,所以我尝试了这个:
var name = $("<div class='name section'>").append(link);
这适用于IE8。
我打破了jQuery / IE8的深奥法则?是否最好使用addClass或将新DOM片段的属性设置为文字HTML?
答案 0 :(得分:0)
如果您通过向h3
标记添加结束标记来使HTML代码正确,则可以正常运行:
link = $('<a>link</a>');
var name = $("<h3 class='name section'></h3>").append(link);
$('#container').append(name);