Jquery使用Slice将前N个元素包装成一个新元素,并将其余N个元素打包成另一个新元素

Jquery Wrap first N number of elements into one New Elements and Rest N into another New Element using Slice

本文关键字:元素 新元素 另一个 包成 将前 使用 Jquery Slice 一个 包装      更新时间:2023-10-15

我试图在一个div中包装一些元素,逻辑是这样的,如果我在一个特定的div中有10个div元素,那么前5个元素应该包装在一个新的div中,其他5个应该包装在另一个新div中。我可以包装前半部分,但后半部分根本没有包装。我想用切片的方法来做。

Js报价

http://jsfiddle.net/t9Pqt/

JS-

var templateNode = $('.multirow');
var divLength = $(templateNode).find('div').length;
var divL = Math.round(divLength / 2);
$(templateNode).find('div').slice(0,divL).wrapAll('<div class="leftMost" />');

您可以使用以下解决方案:

var templateNode = $('.multirow');
var divLength = $(templateNode).find('div').length;
var divL = Math.round(divLength / 2);
var nodes = $(templateNode).find('div'); // store all the nodes in one jQuery list
nodes.slice(0,divL).wrapAll('<div class="leftMost" />'); // wrap first half
nodes.slice(divL).wrapAll('<div class="rightMost" />'); // wrap remaining half