html中通过JS获取JSON数据并加载的方法


Posted in Javascript onNovember 30, 2017

在写内容逻辑重复性的页面时,用json数据可以显著提高编程效率,并且便于后期的数据维护。因此,在视频专题页面,需要展示多列视频数据,我选择了用json。

HTML如下(只展示重点部分,需要引用JQ)

<div class="container-fluid content ">
    <div class="container neirong">
      <div class="left fl">
        <div class="title">
          热门视频
        </div>
        <div class="medialist">
        </div>
      </div></div>
</div>

JS如下

<script>
    $(document).ready(function(){
      
      console.log(1111)
      
          $.getJSON('data.json',function(data){
            
            console.log(222)
            
            
            
          var mediahtml="";
          
          $.each(data,function(i,data) {
            
        
        
          mediahtml+='<div class="media">'+
          '<div class="media-left">'+
          '<a data-toggle="modal" data-target="#myModal">'+
          '<img class="media-object" src="'+data["imgsrc"]+
          '" alt="">'+
            '</a>'+'</div>'+
            '<div class="media-body">'+
            '<div class="title">'+
              '<span class="classify">'+
                data["classify"]+
              '</span>'+
              '<span class="titlename media-heading">'+
                data['titlename']+
              '</span>'+
            '</div>'+
            '<span class="time">'+
              '<span class="glyphicon glyphicon-time"></span> '+
              '<span>'+data['pubdate']+'</span>'+
            '<p>'+data["intro"]+'</p>'+
            '<div class="guest">'+
              '<span class="jia">嘉</span>'+
              '<span class="name">'+data["name"]+'</span>'+
              '<span class="position">'+data["position"]+'</span>'+
              '<span class="glyphicon glyphicon-eye-open"></span>'+
              '<span class="click-rite"></span>'+
            '</div>'+
          '</div>'+
            
          '<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">'+
            '<div class="modal-dialog" role="document">'+
              '<div class="modal-content">'+
                '<div class="modal-header">'+
                  '<button type="button" class="close" data-dismiss="modal" aria-label="Close">'+
                    '<span aria-hidden="true">×</span>'+
                  '</button>'+
                '</div>'+
                '<div class="modal-body"></div>'+
            '</div>'+
          '</div>'+
          '</div>'

            
            
            
//          var url_mobi=data.url_mobi;
//          var url_pc=data.url_pc;
//          if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iOS|iPad|Backerry|WebOS|Symbian|Windows Phone|Phone)/i))) {
//              $('.modal-body').prepend(url_mobi);
//              }else{
//              $('.modal-body').prepend(url_pc);
//              }
//              
//              
              })
          
          $('.medialist').after(mediahtml);  
          
          
        })
          
          
        })
        


        $('#myModal').on('shown.bs.modal', function (e) {
          // 关键代码,如没将modal设置为 block,则$modala_dialog.height() 为零 
          $(this).css('display', 'block');
          var modalHeight = $(window).height() / 2 - $('#myModal .modal-dialog').height() / 2;
          $(this).find('.modal-dialog').css({
            'margin-top': modalHeight
          });
        });


        //点击预览图时判断
//        $('.modal').on('click', function () {
//          if ($('#myModal').css("display") == "none") {
//            $('.modal-body').children('iframe').attr('src', '');
//          } else {
//            $('.modal-body').children('iframe').attr('src',
//              'https://v.qq.com/iframe/player.html?vid=v0508nqkm75&tiny=0&auto=0');
//          }
//        })
    
  </script>

注释部分可不看,不影响内容。

首先要新建json文件,json文件需注意的问题是:json对数据格式有要求,不识别url中的各类符号,因此会提示错误,如果不修复,则会阻断JS进程,造成数据在页面不显示,这个问题我找了好久才发现,而且json问题在js中不会报错。解决办法是利用encode方法,格式化url,然后再添加进json即可,在html中应该还要用decode转回来。

第二个坑是插入html到某个标签中,有四个方法,用after就可以实现,不要用反了。

第三点是需要注意,不要在拼接字符串的时候忘掉加号,少一个就会出问题,一个小问题会找好久才发现,而且拼接错误JS不会报错,很难发现。

以上就是获取JSON数据并加载的方法。

Javascript 相关文章推荐
基于JQuery的6个Tab选项卡插件
Sep 03 Javascript
深入浅析AngularJS中的module(模块)
Jan 04 Javascript
JavaScript递归操作实例浅析
Oct 31 Javascript
Bootstrap的class样式小结
Dec 01 Javascript
Angular实现的table表格排序功能完整示例
Dec 22 Javascript
p5.js入门教程之小球动画示例代码
Mar 15 Javascript
Angular父子组件通过服务传参的示例方法
Oct 31 Javascript
序列化模块json代码实例详解
Mar 03 Javascript
关于angular引入ng-zorro的问题浅析
Sep 09 Javascript
Nuxt的路由配置和参数传递方式
Nov 06 Javascript
浅谈node.js中间件有哪些类型
Apr 29 Javascript
【js设计模式】SOLID五大设计原则
Mar 24 Javascript
微信小程序中吸底按钮适配iPhone X方案
Nov 29 #Javascript
jQuery zTree 异步加载添加子节点重复问题
Nov 29 #jQuery
写给小白看的JavaScript异步
Nov 29 #Javascript
3种vue组件的书写形式
Nov 29 #Javascript
easyui下拉框动态级联加载的示例代码
Nov 29 #Javascript
纯js实现隔行变色效果
Nov 29 #Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
Nov 29 #Javascript
You might like
最小化数据传输――在客户端存储数据
2006/10/09 PHP
Yii使用ajax验证显示错误messagebox的解决方法
2014/12/03 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
jquery一般方法介绍 入门参考
2011/06/21 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
Javascript 实现复制(Copy)动作方法大全
2014/06/20 Javascript
简单理解vue中Props属性
2016/10/27 Javascript
js简易版购物车功能
2017/06/17 Javascript
微信小程序组件 marquee实例详解
2017/06/23 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
[28:48]《真视界》- 2017年国际邀请赛
2017/09/27 DOTA
[57:28]2018DOTA2亚洲邀请赛 4.6 淘汰赛 TNC vs Liquid 第一场
2018/04/10 DOTA
RC4文件加密的python实现方法
2015/06/30 Python
face++与python实现人脸识别签到(考勤)功能
2019/08/28 Python
基于Python实现签到脚本过程解析
2019/10/25 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
python实现经典排序算法的示例代码
2021/02/07 Python
利用CSS3实现折角效果实例源码
2016/09/28 HTML / CSS
德国原装品牌香水、化妆品和手表网站:BRASTY.DE
2016/10/16 全球购物
车辆转让协议书
2014/04/15 职场文书
语文课外活动总结
2014/08/27 职场文书
买房协议书范本
2014/10/23 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
2014年幼儿园教师工作总结
2014/11/08 职场文书
2014年宣传思想工作总结
2014/12/10 职场文书
新郎新娘答谢词
2015/01/04 职场文书
高中生自我评价范文2015
2015/03/03 职场文书
自主招生专家推荐信
2015/03/26 职场文书
向Spring IOC 容器动态注册bean实现方式
2022/07/15 Java/Android