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 相关文章推荐
拖动table标题实现改变td的大小(css+js代码)
Apr 16 Javascript
js克隆对象、数组的常用方法介绍
Sep 26 Javascript
JS比较两个时间大小的简单示例代码
Dec 20 Javascript
jQuery增加、删除及修改select option的方法
Aug 19 Javascript
javascript读取文本节点方法小结
Dec 15 Javascript
javascript 中模板方法单例的实现方法
Oct 17 Javascript
浅谈JS函数节流防抖
Oct 18 Javascript
Angular angular-file-upload文件上传的示例代码
Aug 23 Javascript
在vue项目中使用md5加密的方法
Sep 14 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
Apr 19 Javascript
JavaScript实现图片放大镜效果
Jun 27 Javascript
javascript用defineProperty实现简单的双向绑定方法
Apr 03 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实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
JavaScipt基本教程之前言
2008/01/16 Javascript
javascript基础知识大集锦(二) 推荐收藏
2011/01/13 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
bootstrap table实现单击单元格可编辑功能
2017/03/28 Javascript
node.js平台下的mysql数据库配置及连接
2017/03/31 Javascript
原生JS实现不断变化的标签
2017/05/22 Javascript
深入理解Angular4中的依赖注入
2017/06/07 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
详解JavaScript中typeof与instanceof用法
2018/10/24 Javascript
vue+element实现打印页面功能
2019/05/20 Javascript
vue数据更新UI不刷新显示的解决办法
2020/08/06 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
python正则表达式re模块详解
2014/06/25 Python
python写入中英文字符串到文件的方法
2015/05/06 Python
python通过cookie模拟已登录状态的初步研究
2016/11/09 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
Pycharm小白级简单使用教程
2020/01/08 Python
python 进程池pool使用详解
2020/10/15 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
美国最便宜的旅游网站:CheapTickets
2017/07/09 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
十佳护士先进事迹
2014/05/08 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
对照检查剖析材料
2014/09/30 职场文书
2015年超市工作总结
2015/04/09 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
2015年环保局工作总结
2015/05/22 职场文书
2016年清明节红领巾广播稿
2015/12/17 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书