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}));
});
});