我不太确定我做错了什么,并且没有任何迹象表明这在 IE 中不起作用。但下面的代码没有添加 <dd>
.after() 中的元素到 DOM:
shouts_list_selector = $("#shouts dl#shouts_list");
shout_object = $('<dt>')
.attr('id', shout.id)
.text(shout.name)
.append($('<span>').addClass('separator').text(' : '))
.append($('<abbr>').addClass('timestamp').attr('title', shout.timestamp).text(shout.when))
.after($('<dd>').html(shout.message))
shout_object.prependTo(shouts_list_selector).slideDown('slow', 'swing');
shouts 是一个包含一些消息的对象。这在 Firefox 和 Chrome 中运行良好。但 IE 缺少 <dd>
元素。这个例子有什么问题或者更好的方法吗?
编辑:以下是显示问题的示例:http://jsfiddle.net/sx6YH/
在 Firefox 或 Chrome 中运行时,DD 标记可以正确显示。但在 IE 中不行。
最佳答案
我发现这是一个嵌套附加的原因。 IE8 似乎无法正确处理这些问题。我也遇到了同样的问题,@Andy Shinn 让我找到了正确的方向。就我而言,我试图添加指向未排序列表的链接:
<ul id=menu></ul>
使用以下 jQuery:
$("ul[id=menu]").append("<li><a href='test.html'>test</a></li>");
这适用于大多数浏览器,但不适用于 IE8。如果您将它们添加为未嵌套的,它确实可以工作:
$("ul[id=menu]").append("<li/>").html("<a href='test.html'>test</a>");
关于jQuery .after 不在 IE7/IE8 中添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5591014/