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 实现窗口滚动搜索框停靠效果(类似滚动停靠)
Mar 27 Javascript
js编写trim()函数及正则表达式的运用
Oct 24 Javascript
7个去伪存真的JavaScript面试题
Jan 07 Javascript
jQuery实现的左右移动焦点图效果
Jan 14 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
Mar 07 Javascript
js创建对象几种方式的优缺点对比
Sep 28 Javascript
setTimeout函数的神奇使用
Feb 26 Javascript
webpack配置文件和常用配置项介绍
Apr 28 Javascript
Easyui使用Dialog行内按钮布局的实例
Jul 27 Javascript
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
基于layui table返回的值的多级嵌套的解决方法
Sep 19 Javascript
vue项目中使用vue-layer弹框插件的方法
Mar 11 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版)
2012/08/21 PHP
一个PHP并发访问实例代码
2012/09/06 PHP
深入理解PHP之OpCode原理详解
2016/06/01 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
js修改地址栏URL参数解决url参数问题
2012/12/15 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
Javascript自定义函数判断网站访问类型是PC还是移动终端
2014/01/10 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
jquery制作漂亮的弹出层提示消息特效
2014/12/23 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
基于jQuery和CSS3实现APPLE TV海报视差效果
2017/06/16 jQuery
关于javascript sort()排序你可能忽略的一点理解
2017/07/18 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
2018/08/27 Javascript
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
Python连接PostgreSQL数据库的方法
2016/11/28 Python
numpy自动生成数组详解
2017/12/15 Python
python通过伪装头部数据抵抗反爬虫的实例
2018/05/07 Python
深入浅析Python中的迭代器
2019/06/04 Python
Python 虚拟空间的使用代码详解
2019/06/10 Python
python getpass模块用法及实例详解
2019/10/07 Python
Python如何实现线程间通信
2020/07/30 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
python 爬取B站原视频的实例代码
2020/09/09 Python
生产副总岗位职责
2013/11/28 职场文书
优秀的个人求职信范文
2014/05/09 职场文书
离职感谢信怎么写
2015/01/22 职场文书
初中政治教师教学反思
2016/02/23 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书
php 解析非标准json、非规范json
2021/04/01 PHP
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android