[英]Insert <p> into div Jquery
I'm working on a website and I've this HTML code like this 我正在网站上工作,我就是这样的HTML代码
<p class="thumb-1"></p>
<p class="thumb-2"></p>
<p class="thumb-3"></p>
<p class="thumb-4"></p>
<p class="thumb-5"></p>
<p class="thumb-6"></p>
<p class="thumb-7"></p>
<p class="thumb-8"></p>
<div class="new new-1"></div>
<div class="new new-2"></div>
<div class="new new-3"></div>
<div class="new new-4"></div>
So, I want to put <p>
into divs like this 所以,我想把
<p>
放到像这样的div中
<div class="new new-1">
<p class="thumb-1"></p>
<p class="thumb-5"></p>
</div>
<div class="new new-2">
<p class="thumb-2"></p>
<p class="thumb-6"></p>
</div>
<div class="new new-3">
<p class="thumb-3"></p>
<p class="thumb-7"></p>
</div>
<div class="new new-4">
<p class="thumb-4"></p>
<p class="thumb-8"></p>
</div>
I try this : 我试试这个:
$("p").each(function() {
$('.new').append($this);
});
But I don't know how I can switch to .new-1
then .new-2
ect. 但我不知道如何切换到
.new-1
然后.new-2
。 .. ..
Thanks for your help ! 谢谢你的帮助 !
You can do it using each()
, append()
and eq()
. 你可以使用
each()
, append()
和eq()
来完成它。
var p = $('p[class^="thumb-"]'); $('.new').each(function (i) { $(this).append([p.eq(i), p.eq(i + 4)]); });
div { border:1px solid #000; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <p class="thumb-1">thumb-1</p> <p class="thumb-2">thumb-2</p> <p class="thumb-3">thumb-3</p> <p class="thumb-4">thumb-4</p> <p class="thumb-5">thumb-5</p> <p class="thumb-6">thumb-6</p> <p class="thumb-7">thumb-7</p> <p class="thumb-8">thumb-8</p> <div class="new new-1"></div> <div class="new new-2"></div> <div class="new new-3"></div> <div class="new new-4"></div>
Working Demo 工作演示
$(document).ready(function(){ $("p").each(function(){ var num = $(this).attr('class').split('-')[1] var rem = num % 4; if(rem > 0){ $('.new-'+rem).append($(this)) } else{ $('.new-4').append($(this)) } }); });
.new{ border:1px solid red }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <p class="thumb-1">1</p> <p class="thumb-2">2</p> <p class="thumb-3">3</p> <p class="thumb-4">4</p> <p class="thumb-5">5</p> <p class="thumb-6">6</p> <p class="thumb-7">7</p> <p class="thumb-8">8</p> <div class="new new-1"></div> <div class="new new-2"></div> <div class="new new-3"></div> <div class="new new-4"></div>
This can also be done using the %
operator like so: 这也可以使用
%
运算符完成,如下所示:
jQuery: jQuery的:
$('p').each(function(i) {
$('.new-'+((i%4)+1)).append($(this))
})
Output: 输出:
<div class="new new-1">
<p class="thumb-1">thumb-1</p>
<p class="thumb-5">thumb-5</p>
</div>
<div class="new new-2">
<p class="thumb-2">thumb-2</p>
<p class="thumb-6">thumb-6</p>
</div>
<div class="new new-3">
<p class="thumb-3">thumb-3</p>
<p class="thumb-7">thumb-7</p>
</div>
<div class="new new-4">
<p class="thumb-4">thumb-4</p>
<p class="thumb-8">thumb-8</p>
</div>
See it working in this JS Fiddle: https://jsfiddle.net/igor_9000/g219zjah/ 看到它工作在这个JS小提琴: https : //jsfiddle.net/igor_9000/g219zjah/
Hope that helps. 希望有所帮助。
you have to use below jquery 你必须使用下面的jquery
$('.thumb-1, .thumb-5').wrapAll('<div class="new new-1"></div>');
This will add .thumb-1 and .thumb-5 to new new-1. 这会将.thumb-1和.thumb-5添加到新的new-1中。
and use similarly for other elements 并与其他元素类似地使用
Try this 试试这个
$(document).ready(function(){
$('.new').each(function(index,elem){
$(this).append($('p.thumb-'+(index+1)));
$(this).append($('p.thumb-'+(index+5)));
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.