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根据锚点offset值实现动画切换
Sep 11 Javascript
javascript实现密码强度显示
Mar 18 Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
Jun 03 Javascript
利用vscode编写vue的简单配置详解
Jun 17 Javascript
微信JSAPI Ticket接口签名详解
Jun 28 Javascript
JS实现上传图片的三种方法并实现预览图片功能
Jul 14 Javascript
vue父组件向子组件(props)传递数据的方法
Jan 02 Javascript
浅谈VUE单页应用首屏加载速度优化方案
Aug 28 Javascript
利用angular自动编译andriod APK的绕坑经历分享
Mar 08 Javascript
详解微信小程序文件下载--视频和图片
Apr 24 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
Sep 09 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
Sep 24 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/05/27 PHP
Yii2创建表单(ActiveForm)方法详解
2016/07/23 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
PHP实现带进度条的Ajax文件上传功能示例
2019/07/02 PHP
jQuery 1.0.4 - New Wave Javascript(js源文件)
2007/01/15 Javascript
html的DOM中document对象forms集合用法实例
2015/01/21 Javascript
强大Vue.js组件浅析
2016/09/12 Javascript
jquery实现(textarea)placeholder自动换行
2016/12/22 Javascript
vue2.0中goods选购栏滚动算法的实现代码
2017/05/17 Javascript
NodeJS使用七牛云存储上传文件的方法
2017/07/24 NodeJs
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
vue组件父与子通信详解(一)
2017/11/07 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
使用Python的Twisted框架构建非阻塞下载程序的实例教程
2016/05/25 Python
Python通过命令开启http.server服务器的方法
2017/11/04 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
django settings.py 配置文件及介绍
2019/07/15 Python
基于Python的图像数据增强Data Augmentation解析
2019/08/13 Python
Python autoescape标签用法解析
2020/01/17 Python
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
主题酒店策划书
2014/01/28 职场文书
新书吧创业计划书
2014/01/31 职场文书
安全标准化汇报材料
2014/02/03 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
买房协议书范本
2014/10/23 职场文书
学校党员干部承诺书
2015/05/04 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
Oracle笔记
2021/04/05 Oracle
javascript条件式访问属性和箭头函数介绍
2021/11/17 Javascript
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers