парсинг от json для часто задаваемых вопросов - PullRequest
1 голос
/ 27 января 2011

Я делаю этот раздел часто задаваемых вопросов, получая контент из файлов json, чего я могу достичь. Но моя путаница заключается в том, как интегрировать заголовок «Категория» в раздел часто задаваемых вопросов? Пожалуйста, поделитесь идеей о том, как этого добиться.

// Сценарий

 $.getJSON("faqs.json",function(data){
    $.each(data.posts, function(i,data){
    var faqs =
    "<dt>"+data.title+"</dt><dd>"+data.answer+"</dd>";
    $(faqs).appendTo("#faq");
    });
    });

// JSON формат

{"posts": [ 
{ "title":"Question 1?", "answer":"faq answer 1" }, 
{ "title":"Question 2?", "answer":"faq answer 2" }, 
]}

// Текущий вывод HTML

<dl id="faq">
<dt>Question 1?</dt><dd>faq answer 1</dd>
<dt>Question 2?</dt><dd>faq answer 2</dd>
</dl>

// Ожидаемый выход HTML должен быть

<dl id="faq">
<strong>Category 1</strong>
<dt>Question 1?</dt><dd>faq answer 1</dd>
<dt>Question 2?</dt><dd>faq answer 2</dd>
<strong>Category 2</strong>
<dt>Question 1?</dt><dd>faq answer 1</dd>
<dt>Question 2?</dt><dd>faq answer 2</dd>
</dl>

Как интегрировать раздел «Категория» в файл JSON, если да, то как мне разобраться в HTML. Заранее спасибо

1 Ответ

2 голосов
/ 27 января 2011

Изменить вывод JSON на что-то вроде:

{
  "categories": [
    {
      "title": "Category 1",
      "posts": [ 
        { "title":"Question 1?", "answer":"faq answer 1" }, 
        { "title":"Question 2?", "answer":"faq answer 2" }
      ]
    },
    {
      "title": "Category 2",
      "posts": [ 
        { "title":"Question 1?", "answer":"faq answer 1" }, 
        { "title":"Question 2?", "answer":"faq answer 2" }
      ]
    }
  ]
}

Изменить скрипт на что-то вроде:

$.getJSON("faqs.json",function(data) {
  $.each(data.categories, function(i, c) {
    var section = "<strong>" + c.title + "</strong>";
    $.each(c.posts, function(j, p) {
      section += "<dt>" + p.title + "</dt><dd>" + p.answer + "</dd>";
    });
    $(section).appendTo("#faq");
  });
});

Однако имейте в виду, что требуемый вывод недействителен: тег strong не должен быть вложен в тег dl.

Это можно увидеть в действии здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...