Краткий код, но с полным набором функций
Ниже приведено гибридное решение jQuery, которое форматирует каждую «запись» данных в элемент HTML и использует свойства данных в качестве значений атрибута HTML.
JQuery each
запускает внутренний цикл;Мне нужен был обычный JavaScript for
во внешнем цикле, чтобы можно было использовать имя свойства (вместо значения) для отображения в качестве заголовка.По вкусу его можно изменить для немного другого поведения.
Это только 5 основных строк кода , но для отображения на нескольких строках:
$.get("data.php", function(data){
for (var propTitle in data) {
$('<div></div>')
.addClass('heading')
.insertBefore('#contentHere')
.text(propTitle);
$(data[propTitle]).each(function(iRec, oRec) {
$('<div></div>')
.addClass(oRec.textType)
.attr('id', 'T'+oRec.textId)
.insertBefore('#contentHere')
.text(oRec.text);
});
}
});
Производитвыходные данные
(Примечание: я изменил текстовые значения данных JSON, добавив число, чтобы убедиться, что я отображал правильные записи в правильной последовательности - во время «отладки»)
<div class="heading">
justIn
</div>
<div id="T123" class="Greeting">
1Hello
</div>
<div id="T514" class="Question">
1What's up?
</div>
<div id="T122" class="Order">
1Come over here
</div>
<div class="heading">
recent
</div>
<div id="T1255" class="Greeting">
2Hello
</div>
<div id="T6564" class="Question">
2What's up?
</div>
<div id="T0192" class="Order">
2Come over here
</div>
<div class="heading">
old
</div>
<div id="T5213" class="Greeting">
3Hello
</div>
<div id="T9758" class="Question">
3What's up?
</div>
<div id="T7655" class="Order">
3Come over here
</div>
<div id="contentHere"></div>
Применение таблицы стилей
<style>
.heading { font-size: 24px; text-decoration:underline }
.Greeting { color: green; }
.Question { color: blue; }
.Order { color: red; }
</style>
, чтобы получить "красивый" набор данных
альтернативный текст http://img14.imageshack.us/img14/1148/62593416.png
Подробнее
Данные JSON использовались следующим образом:
для каждой категории (имя ключа, под которым хранится массив):
- имя ключа используется какзаголовок раздела (например, justIn )
для каждого объекта, содержащегося в массиве:
- 'text' становится содержимым div
- 'textType' становится классом div (подключенным к таблице стилей)
- 'textId' становится идентификатором div
- например Иди сюда