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 相关文章推荐
Firefox window.close()的使用注意事项
Apr 11 Javascript
juqery 学习之四 筛选过滤
Nov 30 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
Oct 22 Javascript
JavaScript如何获取数组最大值和最小值
Nov 18 Javascript
用JS写的一个Ajax库(实例代码)
Aug 06 Javascript
浅谈Vue数据响应思路之数组
Nov 06 Javascript
vue spa应用中的路由缓存问题与解决方案
May 31 Javascript
react-native滑动吸顶效果的实现过程
Jun 03 Javascript
微信小程序实现批量倒计时功能
Nov 01 Javascript
原生JavaScript之es6中Class的用法分析
Feb 23 Javascript
详解Typescript 内置的模块导入兼容方式
May 31 Javascript
JavaScript中展开运算符及应用的实例代码
Jan 14 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中通过smtp发邮件的类,测试通过
2007/01/22 PHP
php Ajax乱码
2008/04/09 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
浅析Yii2 GridView实现下拉搜索教程
2016/04/22 PHP
PHP7扩展开发之hello word实现方法详解
2018/01/15 PHP
javascript写的一个链表实现代码
2009/10/25 Javascript
jquery tab标签页的制作
2010/05/10 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
ExtJs的Date格式字符代码
2010/12/30 Javascript
javascript数组去掉重复
2011/05/12 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
一个支付页面DEMO附截图
2014/07/22 Javascript
js格式化时间小结
2014/11/03 Javascript
学习JavaScript编程语言的8张思维导图分享
2015/03/27 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
解决vue 更改计算属性后select选中值不更改的问题
2018/03/02 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
2018/11/05 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
查看django版本的方法分享
2018/05/14 Python
Python字符串内置函数功能与用法总结
2019/04/16 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
django中的数据库迁移的实现
2020/03/16 Python
keras 多任务多loss实例
2020/06/22 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
瑞典快乐袜子:Happy Socks
2018/02/16 全球购物
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
高中地理教学反思
2014/01/29 职场文书
森林病虫害防治方案
2014/06/02 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
Django展示可视化图表的多种方式
2021/04/08 Python
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python
Python进程池与进程锁之语法学习
2022/04/11 Python