[英]How to wrapAll in each loop in jquery
I have some html div
like this: 我有一些这样的html
div
:
<div class="mainClass class_1"></div>
<div class="mainClass class_1"></div>
<div class="mainClass class_2"></div>
<div class="mainClass class_2"></div>
<div class="mainClass class_2"></div>
<div class="mainClass class_2"></div>
<div class="mainClass class_3"></div>
<div class="mainClass class_3"></div>
<div class="mainClass class_3"></div>
<div class="mainClass class_4"></div>
<div class="mainClass class_4"></div>
I want to have something like that: 我想要这样的东西:
<div class="wrapper">
<div class="mainClass class_1"></div>
<div class="mainClass class_1"></div
</div>
<div class="wrapper">
<div class="mainClass class_2"></div>
<div class="mainClass class_2"></div>
<div class="mainClass class_2"></div>
<div class="mainClass class_2"></div>
</div>
<div class="wrapper">
<div class="mainClass class_3"></div>
<div class="mainClass class_3"></div>
<div class="mainClass class_3"></div>
</div>
<div class="wrapper">
<div class="mainClass class_4"></div>
<div class="mainClass class_4"></div>
</div>
How can I use each loop and wrapAll
(or something else) to add this wrapper in in jQuery ? 如何使用每个循环和
wrapAll
(或其他方式)在jQuery中添加此包装器? I don't want to wrapAll
manually for every class (class_1, class_2, class_3 ... ). 我不想
wrapAll
手动为每个类(class_1,class_2,class_3 ...)。
Thanks for your help! 谢谢你的帮助!
You could use the jQuery function wrapAll
and wrapper every element with the same class, check the example bellow: 您可以使用jQuery函数
wrapAll
并包装具有相同类的每个元素,请检查以下示例:
$(".content > div").each(function() { $(".content > ." + this.className).wrapAll("<div class='wrapper' />"); });
div:not(.content):not(.wrapper){ height: 10px; background: #0fc0fc; margin-bottom: 10px; } .wrapper { border: 1px solid #ff0000; margin-bottom: 20px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="content"> <div class="class_1"></div> <div class="class_1"></div> <div class="class_2"></div> <div class="class_2"></div> <div class="class_2"></div> <div class="class_2"></div> <div class="class_3"></div> <div class="class_3"></div> <div class="class_3"></div> <div class="class_4"></div> <div class="class_4"></div> </div>
You have to extract the class which groups them like class_1, class_2
etc. then in the each loop you can .wrapAll()
them: 您必须提取将它们分组的类,例如
class_1, class_2
等,然后在每个循环中可以.wrapAll()
它们进行.wrapAll()
:
$('.mainClass').each(function(i, div){ var clazz = this.className.split(/\\s/)[1]; if(!$(this).parent().is('.wrapper')){ $(`.${clazz}`).wrapAll($('<div/>',{ class: 'wrapper'})) } })
.wrapper{ background:yellow; margin:10px; padding:5px; } .mainClass{ height: 20px; } .class_1{ border:solid 1px purple; margin-bottom:10px;} .class_2{ border:solid 1px orange; margin-bottom:10px;} .class_3{ border:solid 1px green; margin-bottom:10px;} .class_4{ border:solid 1px red; margin-bottom:10px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="mainClass class_1"></div> <div class="mainClass class_1"></div> <div class="mainClass class_2"></div> <div class="mainClass class_2"></div> <div class="mainClass class_2"></div> <div class="mainClass class_2"></div> <div class="mainClass class_3"></div> <div class="mainClass class_3"></div> <div class="mainClass class_3"></div> <div class="mainClass class_4"></div> <div class="mainClass class_4"></div>
Hi why not select all div's using jquery and use loop on them to get set them up accordingly.Eg 嗨,为什么不使用jquery选择所有div并在其上使用循环来进行相应设置。
<div class="mainClass class_1"></div>
<div class="mainClass class_1"></div>
<div class="mainClass class_2"></div>
<div class="mainClass class_2"></div>
<div class="mainClass class_2"></div>
<div class="mainClass class_2"></div>
<div class="mainClass class_3"></div>
<div class="mainClass class_3"></div>
<div class="mainClass class_3"></div>
<div class="mainClass class_4"></div>
<div class="mainClass class_4"></div>
now perform jquery operation 现在执行jQuery操作
$cont = $('div');
var content1 = '<div class="wrapper"><div>';
$.each($cont, function(k,v) {
if($(v).hasClass('class_1')){
//content for div with class_1
} else if($(v).hasClass('class_2')) {
//content for div with class_2
} else {
//include rest content
}
});
This is just a rough overview how you can create your custom format content Hope it helps 这只是一个粗略的概述,您可以如何创建自定义格式的内容,希望对您有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.