Jquery JSON和标签

时间:2017-09-16 21:24:00

标签: jquery json ajax

我是JQuery的新手,需要一些帮助来理解如何构建我的代码......我有一个工作的JSON页面,并且能够让我的代码显示预期的结果。现在我想把这些结果放在标签格式中。基本上我的文章的标题是在标签和下面的文章的正文。我的代码现在显示标签区域中的所有标题,这是正确的,现在我需要将主体放在主要部分。最终结构应如下所示:

<div id="tabs">
   <ul>
       <li><a href="#tabs-1">AAA</a></li>
       <li><a href="#tabs-2">BBB</a></li>
       <li><a href="#tabs-3">CCC</a></li>
   </ul>
   <div id="tabs-1"><h2>AAA</h2><p>This article is about AAA</p></div>
   <div id="tabs-2"><h2>BBB</h2><p>This article is about BBB</p></div>
   <div id="tabs-3"><h2>CCC</h2><p>This article is about CCC</p></div>
</div>

所以,我可以正确显示第一个选项卡区域,但我不知道如何检索第二组数据(文章的div) - 我尝试复制函数searchcallback代码并重命名它,我试过复制整个查询,但都没有奏效。我知道由于我的经验不足,我只是错过了一些东西。有人能告诉我构造代码的正确方法吗?我真的想学习这个,我做了很多阅读但还没有完全理解......我的脚本在下面,JSON数组结构在下面。谢谢。

<script>
var jsonURL = "//www.myurl.com/api.php?columns = id_cr, title, teaser & order = title & page = 1 ";
jQuery(document).ready(function() {
    jQuery.ajax({
        url: jsonURL,
        success: searchCallback
    });
});

function searchCallback(data) {
    var content_data = data.content_data.records;
    jQuery.each(content_data, function(index, content_dat) {
        jQuery(".tabs").append('<li><a href="#tabs-' + content_dat[0] + '">' + content_dat[2] + '</a></li>');
    });
};
</script>


<div id="tabs">
  <ul>
    <div class="tabs"></div>
  </ul>
  <div class="body"></div>
</div>

content_data    
 columns    
  0 "id_cr"
  1 "teaser"
  2 "title"
 records    
  0 
   0    "1"
   1    "This article is about AAA"
   2    "AAA"
  1 
   0    "2"
   1    "This article is about BBB"
   2    "BBB"
  3 
   0    "3"
   1    "This article is about CCC"
   2    "CCC"
 results    3

1 个答案:

答案 0 :(得分:1)

试试这段代码。它是未经测试的,因为我没有你的api url。

  • 我从ul中删除了类标签(类和id同名 风格不好,你不需要它。)

  • 对于JQUERY UI TABS,您需要在ul中为选项卡本身插入一个插入,并在ul之后为选项卡的内容添加另一个插入。 <li><a href="#tabs-1">tabname</a><li> <div id="tabs-1">content</div>

  • 您的content_dat [0]不需要,因为索引已经存在

    <script>
        var jsonURL = "http://www.myurl.com/api.php/content_data?columns=id_cr,title,teaser&order=title&page=1";
            jQuery(document).ready(function() {
                jQuery.ajax({
                    url: jsonURL,
                    success: searchCallback
                });
            });
            function searchCallback(data) {
                var content_data = data.content_data.records;
                jQuery.each(content_data, function(index, content_dat) {
                    jQuery("#tabs ul").append('<li><a href="#tabs-'+index+'">' + content_dat[2] + '</a></li>');
                    jQuery("#tabs ul").after("<div id='tabs-"+index+"'>"+content_dat[1]+"</div>");
                });
            };
        </script>
    
        <div id="tabs">
            <ul>
            </ul>
        </div>