jQuery – 使用相同的类对多个元素进行分组

我有一堆元素都属于某个数字的一​​部分。

...

我想用父元素包装相同节元素的每个组,甚至是只出现一次的节。

这是一个快速,有效但非常脏的解决方案,我想出了:

  $('.section-1').wrapAll('
'); $('.section-2').wrapAll('
'); $('.section-3').wrapAll('
'); $('.section-4').wrapAll('
'); $('.section-5').wrapAll('
'); $('.section-6').wrapAll('
');

我尝试使用每个()提出一个更优雅的解决方案

  $('.section-1,' + '.section-2,' + '.section-3,' + '.section-4,' + '.section-5,' + '.section-6').each(function () { $(this).wrapAll('
'); });

但后来我意识到这将包装每个类名的每个单独的出现,而不是将它们包装成一个组。

最重要的是,虽然目前只有6个部分,但未来可能会有更多部分(7,8,9,10,11等),所以如果该function可以使用任意数量的部分,那将会很棒。

任何帮助深表感谢。

你可以试试这个 :

 // Get all the classes var classes = $('[class^=section]').map(function() { return $(this).attr('class'); }); // Filter only unique ones var uniqueClasses = $.unique(classes); // Now group them $(uniqueClasses).each(function(i, v) { $('.'+v).wrapAll('
'); });

在此示例中,每个组都将位于父类div中,类名为parent-section-1parent-section-2等。