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 相关文章推荐
7个Javascript地图脚本整理
Oct 20 Javascript
用JQuery实现表格隔行变色和突出显示当前行的代码
Feb 10 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
Jun 01 Javascript
基于js中的原型、继承的一些想法
Aug 10 Javascript
微信小程序  modal弹框组件详解
Oct 27 Javascript
Node.js使用NodeMailer发送邮件实例代码
Mar 06 Javascript
jQuery简介_动力节点Java学院整理
Jul 04 jQuery
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
Nov 28 Javascript
react native 原生模块桥接的简单说明小结
Feb 26 Javascript
用Vue编写抽象组件的方法
May 06 Javascript
JavaScript使用prototype属性实现继承操作示例
May 22 Javascript
Element Collapse 折叠面板的使用方法
Jul 26 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中的Class的几点个人看法
2006/10/09 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
PHP实现ftp上传文件示例
2014/08/21 PHP
PHP实现的多文件上传类及用法示例
2016/05/06 PHP
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
推荐10 款 SVG 动画的 JavaScript 库
2015/03/24 Javascript
js图片跟随鼠标移动代码
2015/11/26 Javascript
JavaScript几种数组去掉重复值的方法推荐
2016/04/12 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
2020/01/22 Javascript
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
2020/05/28 Javascript
[01:15:29]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第三局
2016/03/04 DOTA
使用Python写个小监控
2016/01/27 Python
简单谈谈Python中的几种常见的数据类型
2017/02/10 Python
python实现解数独程序代码
2017/04/12 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
redis之django-redis的简单缓存使用
2018/06/07 Python
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
如何使用Python自动控制windows桌面
2019/07/11 Python
python3下pygame如何实现显示中文
2020/01/11 Python
Python交互环境下打印和输入函数的实例内容
2020/02/16 Python
CSS3实例分享--超炫checkbox复选框和radio单选框
2014/09/01 HTML / CSS
FragranceNet中文网:北美健康美容线上零售商
2020/08/26 全球购物
Burt’s Bees英国官网:世界领先的天然个人护理品牌
2020/08/17 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
请写出一段Python代码实现删除一个list里面的重复元素
2015/12/29 面试题
项目合作计划书
2014/01/09 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
趣味运动会广播稿
2015/08/19 职场文书
教师远程培训心得体会
2016/01/09 职场文书
机械生产实习心得体会
2016/01/22 职场文书
css3应用示例:新增的选择器
2022/03/16 HTML / CSS
Nginx的gzip相关介绍
2022/05/11 Servers