无法在列表顶部插入第一个列表项,jQuery bug?

时间:2012-08-27 16:18:49

标签: jquery insert

我有一个论坛主题列表,我每20秒更新一次,检查是否有新帖子。如果有,我会把这个话题移到列表的顶部,就像这个

$('#topicID').insertBefore("#topics li:first"); 

这确实很有效,不幸的是,如果列表项已经位于顶部,则列表项会消失。同样适用于before()。这被认为是错误还是预期的行为?

我意识到在自身之前插入一个元素没有多大意义,并且可以通过在插入之前添加.remove() - Statement来轻松解决这个问题:

$('#topicID').remove().insertBefore("#topics li:first"); 

尽管如此,我认为jQuery在最初的位置插入元素比删除它更有意义。你对此有何看法?

无论哪种方式,这篇文章可能会帮助一些人弄清楚为什么他们的html中可能缺少东西。

这是显示我的意思的代码: http://jsfiddle.net/93UqQ/2/

1 个答案:

答案 0 :(得分:3)

请尝试使用.prependTo

$("#topicID").prependTo("#topics");​​​​​​ 

这将移动元素而不将其从DOM中移除,如果它已经在正确的位置,则不会发生任何变化。

http://jsfiddle.net/mblase75/93UqQ/5/