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 相关文章推荐
js更优雅的兼容
Aug 12 Javascript
使用JavaScript构建JSON格式字符串实现步骤
Mar 22 Javascript
JS常见问题整理(持续更新)
Aug 06 Javascript
javascript中的altKey 和 Event属性大全
Nov 06 Javascript
AngularJS表单和输入验证实例
Nov 02 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
Dec 02 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
Dec 13 Javascript
bootstrap输入框组使用方法
Feb 07 Javascript
vue打包使用Nginx代理解决跨域问题
Aug 27 Javascript
vue 属性拦截实现双向绑定的实例代码
Oct 24 Javascript
node.js实现微信开发之获取用户授权
Mar 18 Javascript
探索node之事件循环的实现
Oct 30 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 mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
PHP使用CURL获取302跳转后的地址实例
2014/05/04 PHP
Laravel5.1自定义500错误页面示例
2016/10/09 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
javascript中的self和this用法小结
2014/02/08 Javascript
JS中自定义定时器让它在某一时刻执行
2014/09/02 Javascript
jQuery中append()方法用法实例
2015/01/08 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
妙用缓存调用链实现JS方法的重载
2018/04/30 Javascript
JS实现判断有效的数独算法示例
2019/02/25 Javascript
node将geojson转shp返回给前端的实现方法
2019/05/29 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
2020/11/01 Javascript
JavaScript实现表单验证功能
2020/12/09 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
[37:21]完美世界DOTA2联赛PWL S2 Inki vs Magma 第二场 11.22
2020/11/24 DOTA
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
Windows下安装python2和python3多版本教程
2017/03/30 Python
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
Python实现爬虫从网络上下载文档的实例代码
2018/06/13 Python
Django框架安装方法图文详解
2019/11/04 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
经典团队口号
2014/06/06 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
Python实现简单的猜单词
2021/06/15 Python
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL