6
Ho una lista xml
che vorrei convertirli in html ul li e raggrupparli per l'id padre dichiarato in ciascun elemento.Gruppo xml per id padre in 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>
L'output dovrebbe essere simile a questo. Dovrò usare l'xml sopra indicato per formarlo in ul e 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>
Come posso farlo? Dovrei usare il ciclo .each con wrapall? Qualcuno può aiutare?
Ecco qualcosa che ho provato.
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);
});
Vi preghiamo di mostrare quello che hai provato. – cybermonkey
Ho modificato di nuovo per provarlo, tuttavia, posso solo raggrupparli per sapere quanti oggetti si trovano sotto ciascun ID genitore. – jqsl
Come la domanda è 'raggruppare gli elementi' secondo xml in questo senso è ** Non duplicato **. –