Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript/Jquery遍历无序列表_Javascript_Jquery_List_Traversal - Fatal编程技术网

使用Javascript/Jquery遍历无序列表

使用Javascript/Jquery遍历无序列表,javascript,jquery,list,traversal,Javascript,Jquery,List,Traversal,假设我有一个无序的嵌套列表: 项目a1 项目a2 项目a3 项目b1 项目b2 项目b3 项目c1 项目c2 第c3项 项目b4 项目a4 我需要遍历它并将其保存在二维数组中(最终我只是尝试将其转换为JSON实体),我可以同时使用Jquery和/或Javascript。我应该如何进行 谢谢函数遍历(ul) { 对于(var指数=0;index0){ 遍历(ul.childNodes[index]); } //执行其他操作 } } 使用JQuery试试: $.each($("li")

假设我有一个无序的嵌套列表:

  • 项目a1
  • 项目a2
  • 项目a3
    • 项目b1
    • 项目b2
    • 项目b3
      • 项目c1
      • 项目c2
      • 第c3项
    • 项目b4
  • 项目a4
我需要遍历它并将其保存在二维数组中(最终我只是尝试将其转换为JSON实体),我可以同时使用Jquery和/或Javascript。我应该如何进行

谢谢

函数遍历(ul)
{
对于(var指数=0;index0){
遍历(ul.childNodes[index]);
}
//执行其他操作
}
}
使用JQuery试试:

$.each($("li"), function(index, value) { 
  alert(value); 
});

我不确定您希望得到的数据结构是什么样的,但这(使用了一些jQuery):

如果需要的话,可以很容易地对其进行调整以改变结果结构的细节


请注意,这是一个javascript对象。如果您确实需要一个JSON对象,那么您只需要使用
var jsonResult=JSON.stringify(result)转换它

查看该列表,您看起来至少有一个三维数据结构(三个嵌套列表)。您能澄清一下您希望输出数组是什么样子吗?而且我认为你不能直接在另一个
    中嵌套
      。我假设它应该在它前面的
    • 中…谢谢chris,我需要一个JSON实体作为我的输出。此外,我还可以使用两个嵌套列表。感谢you@Chris-哦,对不起,你说得太对了!一个关于ul的嵌套的愚蠢错误(现在将对其进行编辑)。关于我的输出,我需要如下内容:{名称:项目a1子项:[],名称:项目a2子项:[],名称:项目a3子项:[{名称:项目b1子项:[],名称:项目b2子项:[],名称:项目b3子项:[{name:item c1子项:[]},}]}相反:{{{name:item a1子项:[]},{name:item a2子项:[]},{name:item a3子项:[{name:item b1子项:[]},{name:item b2子项:[]},{name:item b3子项:[{name:item c1 children:[]}]},]}@Galambalazs是的,是的……就是这样(很抱歉代码难以辨认)你有没有这样的代码来格式化我的输出?当人们将答案标记为正确答案时,我觉得很奇怪,但不要投票。
      function traversing(ul)
      {
           for(var index=0;index<ul.childNodes.length;index++){
                if(ul.childNodes[index].childNodes.length>0){
                    traversing(ul.childNodes[index]);
                }
                //perform other operation
           }
      }
      
      $.each($("li"), function(index, value) { 
        alert(value); 
      });
      
      $(function() {
      
          var result = {};
      
          function createNewLevel(parent,items) {
              var length = items.length;
              for(var i = 0; i < length; i++) {
                  if(items[i].tagName == 'UL') {
                      parent['ul' + i] = {};
                      createNewLevel(parent['ul' + i],$(items[i]).children().get());
                  } else {
                      parent['li' + i] = $(items[i]).text();
                  }
              }
          }
      
          createNewLevel(result, $('ul:first').get());
      
          console.log(result);
      
      });
      
      {
          ul0: {
              li0: "Item a1",
              li1: "Item a2",
              li2: "Item a3",
              li4: "Item a4",
              ul3: {
                  li0: "Item b1",
                  li1: "Item b2",
                  li2: "Item b3",
                  li4: "Item b4",
                  ul3: {
                      li0: "Item c1",
                      li1: "Item c2",
                      li2: "Item c3"
                  }
              }
          }
      }