使用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"
}
}
}
}