Javascript 基于类名对列表项进行分组和嵌套
我有一个无序列表,如下所示(类名允许CSS样式):Javascript 基于类名对列表项进行分组和嵌套,javascript,jquery,html,list,dom,Javascript,Jquery,Html,List,Dom,我有一个无序列表,如下所示(类名允许CSS样式): 我被要求改变这种工作方式,level-02列表项需要嵌套在“parent”level-01中。(01级level-01列表项包含一个复选框,如果选中该复选框,将显示其嵌套选项) 基本上,我需要一个脚本,将每个level-02“li项”添加到最近的level-01中。但是我似乎不知道该怎么做。您可以使用jquery中的prev()方法将其附加到前面
我被要求改变这种工作方式,level-02
列表项需要嵌套在“parent”level-01
中。(01级level-01
列表项包含一个复选框,如果选中该复选框,将显示其嵌套选项)
基本上,我需要一个脚本,将每个level-02
“li项”添加到最近的level-01
中。但是我似乎不知道该怎么做。您可以使用jquery中的prev()
方法将其附加到前面的.level-01
中,如下所示
$('.level-02').each(function(){
var nearest = $(this).prev('.level-01');
nearest.append($(this));
})
在
li
s中循环,并将2
s附加到1
s中-请参见下面的演示:
var list=$(“
”),上一个,父级;
$('ul li')。每个(函数(){
//如果级别为1,则添加到列表中
if($(this).hasClass('level-01')){
列表。追加(本);
//保存当前级别1
上一个=$(本);
parent=null;
}否则{
//创建子列表
如果(!父项){
上一次追加($(“
”);
父项=上一个查找('ul');
}
//附加到子列表
parent.append($(this));
}
});
$('body')。追加(列表)代码>
- 1
- 1
- 1
- 2
- 2
- 2
- 2
- 1
- 2
- 2
- 2
- 1
- 2
- 1
- 1
- 2
- 2
- 2
- 2
- 1
- 2
- 2
- 2
- 2
- 2
- 1
- 2
- 2
- 1
- 2
- 2
- 2
- 2
- 1
- 1
- 1
- 1
- 1
- 1
- 2
- 2
- 2
- 2
- 2
- 2
- 1
- 1
哪个02级
项目应该归入哪个01级
项目?我还没有测试过这个,但我相信你的答案确实会将02级插入到“先前”01级。我上班时会告诉你最新情况。
$('.level-02').each(function(){
var nearest = $(this).prev('.level-01');
nearest.append($(this));
})