Создание алфавита для списка разделов (проблема при формировании html)

Рейтинг: 0Ответов: 2Опубликовано: 16.10.2014

Делаю вывод списка разделов, отсортированных по первому символу названия, а также вывожу сам первый символ в качестве пункта.

Все вроде бы хорошо, но нужно "зарзерать" код для более правильного вывода, и получился такой косяк:

http://jsfiddle.net/3f3osjee/

Не могу сообразить, как избавиться от лишнего пункта, если после него находится пустой ul (в самом низу в данном примере, буква Т).

Ответы

▲ 1Принят

Сделал так, но, кажется, можно гораздо чище это решить. Надо пойти кофе выпить : )

Объект следит за состоянием каждого из тегов и открывает/закрывает их, если требуется.

▲ 1

А потому что путаница с закрытыми тегами при переборе элементов.

Посмотрите на этот пример перебора элементов и формирование html:

    html = '';
for(letter in data) {

    stop = 0;

    for(i in data[letter]) {

        if (stop == 0) html += '<dl class="marks"><dt class="marks-dt">' + letter + '</dt><dd class="marks-dd"><ul>';

        html += '<li class="marks-item">' + data[letter][i].name + '</li>';

        if(count == stop || i == data[letter].length-1) {
            html += '</ul></dd></dl>';
            stop = 0;
        }
        else
           stop++;
    }

}