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 相关文章推荐
ext combox 下拉框不出现自动提示,自动选中的解决方法
Feb 24 Javascript
Jquery submit()无法提交问题
Apr 21 Javascript
js 3秒后跳转页面的实现代码
Mar 10 Javascript
JavaScript实现16进制颜色值转RGB的方法
Feb 09 Javascript
漫谈JS引擎的运行机制 你应该知道什么
Jun 15 Javascript
分类解析jQuery选择器
Nov 23 Javascript
vue2.0使用swiper组件实现轮播的示例代码
Mar 03 Javascript
JS实现简单获取最近7天和最近3天日期的方法
Apr 18 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
Jun 04 Javascript
AngularJS使用$http配置对象方式与服务端交互方法
Aug 13 Javascript
vuex(vue状态管理)的特殊应用案例分享
Mar 03 Javascript
从原生JavaScript到React深入理解
Jul 23 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
基于PHP实现的事件机制实例分析
2015/06/18 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
JS解密入门之凭直觉解
2008/06/25 Javascript
页面中js执行顺序
2009/11/09 Javascript
9个JavaScript评级/投票插件
2010/01/18 Javascript
jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
2013/04/08 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
分享bootstrap学习笔记心得(组件及其属性)
2017/01/11 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
2017/06/12 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
ios中视频的最后一桢问题解决
2019/05/14 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
Python记录详细调用堆栈日志的方法
2015/05/05 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
解决tensorflow训练时内存持续增加并占满的问题
2020/01/19 Python
推荐8款常用的Python GUI图形界面开发框架
2020/02/23 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
HTTP状态码详解
2021/03/18 杂记
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
Html5 FileReader实现即时上传图片功能实例代码
2014/09/01 HTML / CSS
内科护士实习自我鉴定
2013/10/17 职场文书
关于元旦的广播稿
2014/02/16 职场文书
大学生就业策划书范文
2014/04/04 职场文书
建国大业观后感600字
2015/06/01 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
关于Python使用turtle库画任意图的问题
2022/04/01 Python
python计算列表元素与乘积详情
2022/08/05 Python