多元素中的jQuery操作
我有多个部分。。。在这些部分中,几乎没有子元素。。。我需要对每个部分进行操作,以便在另一个元素(例如h1)之后移动1个元素(例如内部) 我的尝试就在这里,但问题是它没有循环通过并在最后打印好。。但我希望输出不同,如下所示 初始状态:多元素中的jQuery操作,jquery,loops,Jquery,Loops,我有多个部分。。。在这些部分中,几乎没有子元素。。。我需要对每个部分进行操作,以便在另一个元素(例如h1)之后移动1个元素(例如内部) 我的尝试就在这里,但问题是它没有循环通过并在最后打印好。。但我希望输出不同,如下所示 初始状态: <section class="greeting"> <h2>Greetings 1</h2> <div class="time">Morning</div> <div class="in
<section class="greeting">
<h2>Greetings 1</h2>
<div class="time">Morning</div>
<div class="inner">Good 1</div>
</section>
<br />
<br />
<section class="greeting">
<h2>Greetings 1</h2>
<div class="time">Afternoon</div>
<div class="inner">Good 2</div>
</section>
<br />
<br />
<section class="greeting">
<h2>Greetings 1</h2>
<div class="time">night</div>
<div class="inner">Good 3</div>
</section>
问候1
早晨
好的1
问候1
下午
好的2
问候1
夜
好3
操纵后
<section class="greeting">
<h2>Greetings 1</h2>
<div class="inner">Good 1</div>
<div class="time">Morning</div>
</section>
<br />
<br />
<section class="greeting">
<h2>Greetings 1</h2>
<div class="inner">Good 2</div>
<div class="time">Afternoon</div>
</section>
<br />
<br />
<section class="greeting">
<h2>Greetings 1</h2>
<div class="inner">Good 3</div>
<div class="time">night</div>
</section>
问候1
好的1
早晨
问候1
好的2
下午
问候1
好3
夜
试试这个:
$(".greeting").each(function() {
$(this).children('div:eq(0)').before($(this).children('div:eq(1)'));
});
演示:原始代码有两个问题:
$(".greeting").each(function() {
$(this).children('.time').addClass("on");
$(this).children('.time').after($('.inner'));
});
1)您正在使用internal
类选择要移动的所有元素:
$('.inner')
Intead,仅使用当前div中的一个:
$(this).children('.inner')
2)您正在使用after
函数,该函数将作为参数传递的内容插入到调用该函数的元素之后。另一方面,insertAfter
以相反的方式运行。发件人:
对于.after(),方法前面的选择器表达式是
在其之后插入内容的容器。带.insertAfter(),在
另一方面,内容位于方法之前,或者作为选择器
表达式或作为动态创建的标记,并在
目标容器
因此,您可以将代码更改为:
$(".greeting").each(function() {
$(this).children('.time').addClass("on");
$(this).children('.time').insertAfter($(this).children('.inner'));
});
或者这个:
$(".greeting").each(function() {
$(this).children('.time').addClass("on");
$(this).children('.inner').after($(this).children('.time'));
});
如果一个答案解决了你的问题,你应该接受它。
$(".greeting").each(function() {
$(this).children('.time').addClass("on");
$(this).children('.inner').after($(this).children('.time'));
});