Javascript 从a<;ul>&书信电报;李>;树格式

Javascript 从a<;ul>&书信电报;李>;树格式,javascript,html,jquery,css,Javascript,Html,Jquery,Css,我有下面的树视图: ul{ 列表样式类型:无; } 第一个文件夹 app1.dat app2.dat 第二个文件夹 ret.dat 这里是通用代码,您只需将事件添加到li(使用事件委派)并将父元素添加到作为所选li元素父元素的li元素 $(函数(){ $('myTreeSelector')。在('click','li',function()上{ var项目=$(此项); var路径=[]; if(item.is('.file')){ push(item.text().tr

我有下面的树视图:

ul{
列表样式类型:无;
}

  • 第一个文件夹
      app1.dat app2.dat
    • 第二个文件夹
      • ret.dat

这里是通用代码,您只需将事件添加到li(使用事件委派)并将父元素添加到作为所选li元素父元素的li元素

$(函数(){
$('myTreeSelector')。在('click','li',function()上{
var项目=$(此项);
var路径=[];
if(item.is('.file')){
push(item.text().trim());
}否则{
path.push(item.find('>.folder selector').text().trim()+'/');
}
var parents=item.parents('#myTreeSelector li');
path=parents.map(函数(){
返回$(this.find('>.folder selector').text().trim();
}).get().reverse().concat(路径);
console.log(path.join('/');
返回false;
});
});
ul{
列表样式类型:无;
}

  • 第一个文件夹
      app1.dat app2.dat
    • 第二个文件夹
      • ret.dat
      • 第三个文件夹

请单击编辑,然后单击
[]
代码段编辑器,并使用您使用的插件生成一个代码段,因为现在您没有任何包含.val()-.text()的内容。是的,但没有.val()。如果这有助于解决问题,我不介意将HTML(文件和文件夹名称)文本本身添加为
值=
。提前谢谢。我给你写了一个片段。这样就更容易回答谢谢了。它可以工作,但当你有一个没有文件的空文件夹时,它会失败。尝试将第二个文件夹添加到ret.dat行之后。我得到一个未捕获的类型错误:this.parentElement.querySelector(…)为空@Avión它可以工作,请参见我的编辑,您是否用li包装了元素,这是您创建列表项的方式。您是对的,我缺少
  • 包装。谢谢!