xml応答でサーバーから50を超えるアイテムが返されます。サーバーで処理する方が良いと思いますが、これはリクエストです。
開いているリスト<ul>
と閉じているリストを2つ作成し、<\ul>
それぞれに応答からの10項目があります。最初から数えるだけの注文はありません。
私のループは次のようになります。
var strHtml = '<ul>';
$(xml).find('Books row').each(function()
{
strHtml += '<li><a href ="mylink">sometext</a></li>';
// ...
});
strHtml += '<\ul>';
$('#category').empty().append(strHtml);
必要なのは2つのリストなので、ループ内でULタグのオープンとクローズを処理する必要があります。このようなものですが、私がそれを大丈夫かどうかはわかりません:
var itemCounter = 1,
strHtml ='';
$(xml).find('Books row').each(function() //note: function( index )
{
if (itemCounter == 1){
// first iteration opens <ul>
strHtml += '<ul>';
}
else if(itemCounter > 10){
// 10th list item created.
// close first UL and open next UL
strHtml += '</ul><ul>';
}
else if(itemCounter > 20){
// max items allowed detected
// close <ul> and break loop
strHtml += '</ul>';
return;
}
// regular li
strHtml += '<li><a href ="mylink">sometext</a></li>';
itemCounter++;
});
$('#category').empty().append(strHtml);
これをどのように処理しますか?
サイドノート:
私のhtml/css構造には、2つの垂直方向のリストが並んでいる必要があります。1つのリストを作成してすべてのアイテムをフローティングするのではなく、2つにまとめて、それらを左にフロートさせるのが最良の結果であることがわかりました。