首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >点击Blogspot json加载post内容

点击Blogspot json加载post内容
EN

Stack Overflow用户
提问于 2020-07-14 14:22:12
回答 1查看 114关注 0票数 1

代码语言:javascript
运行
复制
$.ajax({
    url: 'https://mailliw88.blogspot.com/feeds/posts/default?start-index=1&max-results=2&alt=json-in-script',
    type: 'get',
    dataType: "jsonp",
    success: function(data) {
        var entry = data.feed.entry;
        for (var i = 0; i < entry.length; i++) {

            postTitle = entry[i].title.$t;
            postTitleLink = entry[i].title.$t.replace(/\s+/g, '-').toLowerCase();

            items = '<div class="items"><h2><a href="#' + postTitleLink + '">' + postTitle + '</a></h2></div>';
            document.getElementById('showlists').innerHTML += items;

            postContent = entry[i].content.$t;

            content = '<div class="contentWrap"><div id="close">CLOSE</div><h1>' + postTitle + '</h1><div>' + postContent + '</div></div>';
            document.getElementById('showlists').innerHTML += content;
        }
    }
});
代码语言:javascript
运行
复制
h1 {margin:0}
.contentWrap {border:1px solid red;
padding:5px}
#close {color:red;text-align:right}
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id='showlists'>
</div>

如何仅在点击标题时加载post内容?我可以在jquery中使用.toggle,但我需要加载和“卸载”内容,而不仅仅是显示和隐藏它。我希望我说的有道理。

我的技能仅限于css,谢谢您的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-14 14:32:58

您可以使用display:none进行<div class="contentWrap">,在单击a标记时,您可以使用closest()next().And显示内容,再次单击close,使用"display", "none"隐藏内容div。

演示代码

代码语言:javascript
运行
复制
$.ajax({
    url: 'https://mailliw88.blogspot.com/feeds/posts/default?start-index=1&max-results=2&alt=json-in-script',
    type: 'get',
    dataType: "jsonp",
    success: function(data) {
        var entry = data.feed.entry;
        for (var i = 0; i < entry.length; i++) {

            postTitle = entry[i].title.$t;
            postTitleLink = entry[i].title.$t.replace(/\s+/g, '-').toLowerCase();

            items = '<div class="items"><h2><a href="#' + postTitleLink + '">' + postTitle + '</a></h2></div>';
            document.getElementById('showlists').innerHTML += items;

            postContent = entry[i].content.$t;
//added display none and added class = close
            content = '<div style="display:none"class="contentWrap"><div class="close">CLOSE</div><h1>' + postTitle + '</h1><div>' + postContent + '</div></div>';
            document.getElementById('showlists').innerHTML += content;
        }
    }
});
//on click of a tag show content
$(document).on("click","a",function(){
//a->closest div->next content->show
$(this).closest(".items").next(".contentWrap").css("display", "block");


})
//onclick of close -> hide again
$(document).on("click",".close",function(){
$(this).closest(".contentWrap").css("display", "none");
})
代码语言:javascript
运行
复制
h1 {margin:0}
.contentWrap {border:1px solid red;
padding:5px}
.close {color:red;text-align:right}
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id='showlists'>
</div>

更新1

您可以为i值分配一些自定义属性,然后使用相同的index值访问下面的代码段中的post content.In --我没有再次向服务器发送请求,在单击a时加载json,相反,我必须使用一些变量将data.feed.entry的内容存储在某个变量中,然后使用它来添加内容。

演示代码

代码语言:javascript
运行
复制
var datas = "";
$.ajax({
  url: 'https://mailliw88.blogspot.com/feeds/posts/default?start-index=1&max-results=2&alt=json-in-script',
  type: 'get',
  dataType: "jsonp",
  success: function(data) {
  //adding entry content in datas to use later
    datas = data.feed.entry;
    var entry = data.feed.entry;
    for (var i = 0; i < entry.length; i++) {

      postTitle = entry[i].title.$t;
     postTitleLink = entry[i].title.$t.replace(/\s+/g, '-').toLowerCase();
      //passing index no i.e : " i " in custom attribute 
      items = '<div class="items"><h2><a data-val=' + i + ' href="#' + postTitleLink + '">' + postTitle + '</a></h2></div>';
      document.getElementById('showlists').innerHTML += items;
       }
  }
});
$(document).on("click", "a", function() {
$(".contentWrap").remove(); //remove previous div
  var ids = $(this).attr('data-val');
  console.log(ids)
  //getting data that index position got from a tag
  postTitle = datas[ids].title.$t;
  postTitleLink = datas[ids].title.$t.replace(/\s+/g, '-').toLowerCase();
  postContent = datas[ids].content.$t;

  content = '<div class="contentWrap"><div class="close">CLOSE</div><h1>' + postTitle + '</h1><div>' + postContent + '</div></div>';
  document.getElementById('showlists').innerHTML += content;



})
代码语言:javascript
运行
复制
h1 {margin:0}
.contentWrap {border:1px solid red;
padding:5px}
.close {color:red;text-align:right}
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="showlists"></div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62897352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档