猿问

将每3div包在div中。

将每3div包在div中。

可以用吗?nth-child使用选择器包装3div.wrapAll?我似乎想不出正确的方程式。

所以.。

<div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div></div>

变成.。

<div>
   <div class="new">
        <div></div>
        <div></div>
        <div></div>
   </div>
   <div class="new">
        <div></div>
        <div></div>
        <div></div>
   </div></div>


jeck猫
浏览 573回答 3
3回答

汪汪一只猫

你可以用.slice(),就像这样:var&nbsp;divs&nbsp;=&nbsp;$("div&nbsp;>&nbsp;div");for(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;divs.length;&nbsp;i+=3)&nbsp;{ &nbsp;&nbsp;divs.slice(i,&nbsp;i+3).wrapAll("<div&nbsp;class='new'></div>");}你可以在这里试试看,我们在这里所做的就是获取您想要对它们进行包装和循环的元素,并执行一个.wrapAll()分批的3,然后移动到下一个3,等等。它将在一次包3,但许多在结尾,例如3,3,3,2,如果是这样的话。

扬帆大鱼

插件$(function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;$.fn.EveryWhat&nbsp;=&nbsp;function(arg1)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;arr&nbsp;=&nbsp;[]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($.isNumeric(arg1))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$.each(this,&nbsp;function(idx,&nbsp;item)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;newNum&nbsp;=&nbsp;idx&nbsp;+&nbsp;1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(newNum%arg1&nbsp;==&nbsp;0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arr.push(item); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;this.pushStack(arr,&nbsp;"EveryWhat",&nbsp;""); &nbsp;&nbsp;&nbsp;&nbsp;}});如何使用它。打电话EveryWhat()在元素上,并为您要收集的每个元素输入一个数字。$("div").EveryWhat(2).wrapInner('<div&nbsp;class="new"&nbsp;/>');包装器的引号应该有正确的格式<div class="new" />有一个类和结束标记。StackOverflow阻止我展示它的样子,但是这里是一个自关闭div的链接。它应该是什么样子它将封装您指定的所有其他数字。我使用的是jQuery1.8.2。所以请记住使用选择器调用EveryWhat(3)每次都有一个数字。当然,将其放在页面底部或将其包装在$(document).ready(function()&nbsp;{&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;//place&nbsp;above&nbsp;code&nbsp;here});你可以用每一个.wrapInner('<div class="new" />')同样的结果。
随时随地看视频慕课网APP
我要回答