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-1
, parent-section-2
等。