Javascript 按类名包装列表元素

Javascript 按类名包装列表元素,javascript,jquery,html,Javascript,Jquery,Html,我问过相关的答案,但和这个问题不一样: 我的问题是如何分解列表项并从列表项中添加新的类find,下面的示例是什么 主HTML: 测试内容 测试内容 测试内容 测试内容 测试内容 测试内容 我想按类对列表项进行如下分解: 测试内容 测试内容 测试内容 测试内容 测试内容 测试内容 我的意思是按类划分列表项,并将类添加到父级ulfind from list items上面给出的示例中。如何简单地通过Jquery/JS实现这一点? 提前感谢。 $(".widget-conten

我问过相关的答案,但和这个问题不一样:
我的问题是如何分解列表项并从列表项中添加新的类find,下面的示例是什么

主HTML:


  • 测试内容
  • 测试内容
  • 测试内容
  • 测试内容
  • 测试内容
  • 测试内容
我想按类对列表项进行如下分解:


  • 测试内容
  • 测试内容
  • 测试内容
  • 测试内容
  • 测试内容
  • 测试内容
我的意思是按类划分列表项,并将类添加到父级
ul
find from list items上面给出的示例中。如何简单地通过Jquery/JS实现这一点?
提前感谢。

$(".widget-content").each(function(){

  var $li = $(this).find("li").unwrap(); // unwrap removes the old UL wrapper
  var uniq = [];

  // Create a collection of unique "label*" classes:
  $li.find("[class^=label]").attr("class", function(i, v){
    if(!~$.inArray(v, uniq)) uniq.push(v);
  });

  // Group LI by A class, and wrap into a new UL with the same class
  $.each(uniq, function(i, klas){
    $("a."+klas).closest("li").wrapAll($("<ul/>",{class:klas}));
  });

});
$(“.widget content”)。每个(函数(){
var$li=$(this.find(“li”).unwrap();//unwrap删除旧的UL包装
var uniq=[];
//创建唯一“label*”类的集合:
$li.find(“[class^=label]”).attr(“class”,函数(i,v){
如果(!~$.inArray(v,uniq))uniq.push(v);
});
//将LI按类分组,并使用同一类包装成新的UL
$。每个(uniq,功能(i,klas){
$(“a.”+klas).lapall($(“
    ,{class:klas})); }); });
但如何按类别划分列表项?好的,任何一个小提琴链接的例子,试着按类分解列表项
<div class="widget-content">

<ul class="label1"> <!--add class find from list-->
<li><a class="label1" href="/lorem">lorem</a> Test Content</li>
<li><a class="label1" href="/lorem">lorem</a> Test Content</li>
<li><a class="label1" href="/lorem">lorem</a> Test Content</li>
</ul>

<ul class="label2"> <!--add class find from list-->
<li><a class="label2" href="/lorem">lorem</a> Test Content</li>
<li><a class="label2" href="/lorem">lorem</a> Test Content</li>
<li><a class="label2" href="/lorem">lorem</a> Test Content</li>
</ul>

</div>
$(".widget-content").each(function(){

  var $li = $(this).find("li").unwrap(); // unwrap removes the old UL wrapper
  var uniq = [];

  // Create a collection of unique "label*" classes:
  $li.find("[class^=label]").attr("class", function(i, v){
    if(!~$.inArray(v, uniq)) uniq.push(v);
  });

  // Group LI by A class, and wrap into a new UL with the same class
  $.each(uniq, function(i, klas){
    $("a."+klas).closest("li").wrapAll($("<ul/>",{class:klas}));
  });

});