我有一个论坛主题列表,我每20秒更新一次,检查是否有新帖子。如果有,我会把这个话题移到列表的顶部,就像这个
$('#topicID').insertBefore("#topics li:first");
这确实很有效,不幸的是,如果列表项已经位于顶部,则列表项会消失。同样适用于before()。这被认为是错误还是预期的行为?
我意识到在自身之前插入一个元素没有多大意义,并且可以通过在插入之前添加.remove() - Statement来轻松解决这个问题:
$('#topicID').remove().insertBefore("#topics li:first");
尽管如此,我认为jQuery在最初的位置插入元素比删除它更有意义。你对此有何看法?
无论哪种方式,这篇文章可能会帮助一些人弄清楚为什么他们的html中可能缺少东西。
这是显示我的意思的代码: http://jsfiddle.net/93UqQ/2/
答案 0 :(得分:3)
请尝试使用.prependTo
:
$("#topicID").prependTo("#topics");
这将移动元素而不将其从DOM中移除,如果它已经在正确的位置,则不会发生任何变化。