jQuery .after 不在 IE7/IE8 中添加元素

标签 jquery jquery-selectors

我不太确定我做错了什么,并且没有任何迹象表明这在 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/

相关文章:

asp.net - jquery 选择器内的字符串连接

jquery - 一般选择一个文本区域

ajax - jQuery:在任何 Javascript 事件触发之前通过 *非 jQuery* AJAX 添加目标元素?超出了 live() 的范围?

jQuery - live() 无法与 append div 中的 next() 一起使用

javascript - 使用变量中的数据加载 D3 可折叠树

jquery - 在python flask中获取jquery post数据null

javascript - 通缉 : jQuery selector with variable part in the middle

javascript - jQuery:检查包含特定值的表行是否已经存在

jquery - 无法识别Ajax

javascript - 在 ie (SVG) 上隐藏未找到图像的图标