[英]Traversing unordered lists using Javascript/Jquery
可以說我有一個無序的嵌套列表:
<ul>
<li>Item a1</li>
<li>Item a2</li>
<li>Item a3</li>
<ul>
<li>Item b1</li>
<li>Item b2</li>
<li>Item b3</li>
<ul>
<li>Item c1</li>
<li>Item c2</li>
<li>Item c3</li>
</ul>
<li>Item b4</li>
</ul>
<li>Item a4</li>
</ul>
我需要遍歷並將其保存在二維數組中(最終,我只是試圖將其轉換為JSON實體)我被允許同時使用Jquery和/或Javascript。 我應該如何進行?
謝謝
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
}
}
我不確定您想要的結果數據結構是什么樣子,但這(使用一些jQuery):
$(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"
}
}
}
}
如果需要,可以很容易地對其進行調整以更改生成的結構的細節。
請注意,這是一個javascript對象。 如果您確實需要JSON對象,則只需使用var jsonResult = JSON.stringify( result );
進行轉換var jsonResult = JSON.stringify( result );
使用JQuery嘗試:
$.each($("li"), function(index, value) {
alert(value);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.