Tôi đang kéo tóc ra cố gắng tạo một danh sách không theo thứ tự từ tệp xml mà không có may mắn cho đến nay.I biết cách xử lý xml từ jQuery nhưng tôi không thể tìm ra cách tạo danh sách không có thứ tự đa cấp.Đa cấp xml vào danh sách không theo thứ tự trong jquery
Đây là những gì tôi đã đạt được cho đến nay.
Các xml nộp
<?xml version="1.0" encoding="utf-8"?>
<Parent>Director
<Children>Exe Director1</Children>
<Children>Exe Director2</Children>
<Parent>Exe Director2
<Children>Sub Director 1</Children>
<Children>Sub Director 2</Children>
<Parent>Sub Director 3
<Children>Cameraman 1</Children>
<Children>Cameraman 2</Children>
</Parent>
</Parent>
</Parent>
Các tập tin html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
var levels;
$(document).ready(function()
{
$.ajax({
type: "GET",
url: "test.xml",
dataType: "xml",
success: xmlParser
});
});
function xmlParser(xml)
{
$(xml).find("Children").each(function()
{
var text = $(this).text();
});
}
</script>
</head>
<body>
<div id="ListContainer"></div>
</body>
</html>
Đây là danh sách dự kiến
<ul>
<li>Exe Director1</li>
<li>Exe Director2</li>
<ul>
<li>Sub Director 1</li>
<li>Sub Director 2</li>
<ul>
<li>Cameraman 1</li>
<li>Cameraman 2</li>
</ul>
</ul>
</ul>
thể các bạn hãy giúp tôi ra!
Edit:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
var levels;
$(document).ready(function()
{
$.ajax({
type: "GET",
url: "test.xml",
dataType: "xml",
success: function (xml) { xmlParser($(xml)); }
});
});
function xmlParser(xml) {
//alert($(xml).contents());
var $ul = $("<ul>"); // For each Parent, create an <ul>
$(xml).contents().each(function (i, el) {
if (el.nodeType == 3) return true;
if (el.nodeName.toUpperCase() == "CHILDREN")
{
$("<li>").text($(el).text()).appendTo($ul); // Append <li> Children
} else
{
$ul.append(xmlParser($(el))); // Recursively append the other Parent
}
//$("#ListContainer").append($ul);
});
//alert($ul.html());
$("#ListContainer").append($ul);
}
</script>
</head>
<body>
<div id="ListContainer"></div>
</body>
</html>
@Bergi Tôi hiểu rằng tôi cần phải lặp lại 'Trẻ em' để tạo danh sách. Nhưng để làm điều đó một cách đệ quy, tôi có cần phải hành động theo' cha mẹ ("Cha mẹ") '? Kiến thức của tôi trong jQuery khá hạn chế. –
Nó không phải là một vấn đề jQuery, nhưng là một vấn đề lập trình chuẩn. Bạn có thể (và nên?) Giải quyết nó mà không cần jQuery, quá. Cố gắng lặp lại cây DOM *, thay vì tất cả các phần tử (của một loại) cùng một lúc. – Bergi