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动态添加复选框Checkbox的实例方法
Apr 08 Javascript
一个封装js代码-----展开收起效果示例
Jul 03 Javascript
浅析JS刷新框架中的其他页面 &amp;&amp; JS刷新窗口方法汇总
Jul 08 Javascript
Javascript操作URL函数修改版
Nov 07 Javascript
javascript 四十条常用技巧大全
Sep 09 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
Nov 04 Javascript
小程序实现列表删除功能
Oct 30 Javascript
深入浅析vue-cli@3.0 使用及配置说明
May 08 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
Jun 26 Javascript
VUE实现自身整体组件销毁的示例代码
Jan 13 Javascript
JavaScript函数重载操作实例浅析
May 02 Javascript
创建与框架无关的JavaScript插件
Dec 01 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版本号
2006/10/09 PHP
php递归函数中使用return的注意事项
2014/01/17 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
Js获取事件对象代码
2010/08/05 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
bootstrap警告框使用方法解析
2017/01/13 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
使用go和python递归删除.ds store文件的方法
2014/01/22 Python
Python CSV模块使用实例
2015/04/09 Python
深入学习python的yield和generator
2016/03/10 Python
快速查询Python文档方法分享
2017/12/27 Python
Python实现屏幕截图的两种方式
2018/02/05 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
python反编译教程之2048小游戏实例
2021/03/03 Python
浅析CSS3 用text-overflow解决文字排版问题
2020/10/28 HTML / CSS
html5.2 dialog简介详解
2018/02/27 HTML / CSS
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
大学生学习自我评价
2014/01/13 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
2015感人爱情寄语
2015/02/26 职场文书
功夫熊猫观后感
2015/06/10 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
2016年教师党员公开承诺书
2016/03/24 职场文书
JavaScript继承的三种方法实例
2021/05/12 Javascript