6
Tôi có danh sách xml
mà tôi muốn chuyển đổi chúng thành li li html và nhóm chúng theo id mẹ được nêu trong mỗi mục.Nhóm xml theo id mẹ vào ul li html
<list>
<item>
<id>1</id>
<ParentID>100</ParentID>
<Seq>1</Seq>
</item>
<item>
<id>2</id>
<ParentID>100</ParentID>
<Seq>2</Seq>
</item>
<item>
<id>3</id>
<ParentID>200</ParentID>
<Seq>5</Seq>
</item>
<item>
<id>4</id>
<ParentID>100</ParentID>
<Seq>3</Seq>
</item>
<item>
<id>5</id>
<ParentID>100</ParentID>
<Seq>4</Seq>
</item>
<item>
<id>6</id>
<ParentID>200</ParentID>
<Seq>1</Seq>
</item>
<item>
<id>7</id>
<ParentID>200</ParentID>
<Seq>2</Seq>
</item>
<item>
<id>8</id>
<ParentID>200</ParentID>
<Seq>4</Seq>
</item>
<item>
<id>9</id>
<ParentID>200</ParentID>
<Seq>3</Seq>
</item>
<item>
<id>10</id>
<ParentID>200</ParentID>
<Seq>6</Seq>
</item>
</list>
Kết quả sẽ trông như thế này. Tôi sẽ phải sử dụng xml đã cho ở trên để tạo thành ul và li.
<ul>
<li id="item-100" parentid="100">
<h4>Item 100</h4>
<ul class="sortConn">
<li id="item-1" class="ui-state-default">Item 1</li>
<li id="item-2" class="ui-state-default">Item 2</li>
<li id="item-4" class="ui-state-default">Item 4</li>
<li id="item-5" class="ui-state-default">Item 5</li>
</ul>
</li>
</ul>
<ul>
<li id="item-200" parentid="200">
<h4>Item 200</h4>
<ul class="sortConn">
<li id="item-3" class="ui-state-default">Item 3</li>
<li id="item-6" class="ui-state-default">Item 6</li>
<li id="item-7" class="ui-state-default">Item 7</li>
<li id="item-8" class="ui-state-default">Item 8</li>
<li id="item-9" class="ui-state-default">Item 9</li>
<li id="item-10" class="ui-state-default">Item 10</li>
</ul>
</li>
</ul>
Tôi làm như thế nào? Tôi có nên sử dụng vòng lặp .each với wrapall không? Ai đó có thể giúp đỡ?
Đây là điều tôi đã thử.
var $ul = $('<ul></ul>'), $li = $('<li></li>');
var $ulc, $lic;
$ulc = $ul.clone();
//
var group = {}, pid;
//
$('item', output).each(function (idx, elm) {
pid = $('ParentID', elm).text();
//
if (group.hasOwnProperty(pid)) {
group[pid] += 1;
}
else {
group[pid] = 1;
}
$ulc = $ul.clone();
$lic = $li.clone();
$lic.addClass('ui-state-default');
$lic.attr('id', 'item-' + pid);
$lic.append('Item ' + pid); //title of the sitemap
$ulc.append($lic);
$('#result').append($ulc);
});
Hãy cho chúng ta thấy những gì bạn đã cố gắng. – cybermonkey
Tôi đã chỉnh sửa lại để dùng thử, tuy nhiên, tôi chỉ có thể nhóm chúng để biết số lượng mục nằm trong từng id mẹ. – jqsl
Khi câu hỏi là 'nhóm các mục' theo xml theo nghĩa đó, ** Không trùng lặp **. –