【发布时间】:2013-01-01 14:48:14
【问题描述】:
我有数百个
<div class="post">
彼此相邻。
新元素通过 AJAX 更新并置于现有元素之上。
现在有一个特殊的
<div id="ad1">
我想一直保持在第 n 位。
所以我做了那个函数:
$(".post").each(function() {
if(cnt>2){
$('#ad1').after(this);
}
cnt++;
});
它几乎可以工作,但是,#ad1 之后移动的元素顺序相反,因为循环从 1 到 n,但元素总是直接附加在 #ad1 之后。
非常欢迎任何意见。
谢谢 拉斐尔
【问题讨论】:
-
两个答案都有效,但如果我理解的话,他们会移动 #ad1,这可能会对该 div 中的 adsense 代码造成问题。那么,在#ad1 之后移动#ad1 之前除前n 个元素之外的所有元素而不改变它们的顺序的优雅解决方案是什么?
-
添加了第二个解决方案(未经测试)。
-
谢谢!这段代码每次运行时都会复制#ad1,所以我在第二次运行后看到了3个实例......不明白为什么nextUntil记录了所有元素,但不包括选择器?
-
已修复 -- 我使用了错误的 'after' 方法。
标签: jquery dom element siblings