Javascript 基于类名对列表项进行分组和嵌套

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()方法将其附加到前面

我有一个无序列表,如下所示(类名允许CSS样式):

我被要求改变这种工作方式,
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));
      })