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 相关文章推荐
Google AJAX 搜索 API实现代码
Nov 17 Javascript
Jquery replace 字符替换实现代码
Dec 02 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
Mar 10 Javascript
自己编写的类似JS的trim方法
Oct 09 Javascript
jQuery实现进度条效果代码
Dec 17 Javascript
超实用的JavaScript表单代码段
Feb 26 Javascript
jQuery元素选择器实例代码
Feb 06 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
Jul 31 Javascript
Vue完整项目构建(进阶篇)
Feb 10 Javascript
浅谈layui 数据表格前后台传值的问题
Sep 12 Javascript
基于JavaScript实现单例模式
Oct 30 Javascript
vue-cli4.5.x快速搭建项目
May 30 Vue.js
微信小程序中吸底按钮适配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 空格,换行,跳格使用说明
2009/12/18 PHP
PHP array_multisort() 函数的深入解析
2013/06/20 PHP
php如何获取Http请求
2020/04/30 PHP
Google Map API更新实现用户自定义标注坐标
2009/07/29 Javascript
33种Javascript 表格排序控件收集
2009/12/03 Javascript
jQuery.holdReady()使用方法
2014/05/20 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
jQuery动态改变多行文本框高度的方法
2016/09/07 Javascript
从零学习node.js之express入门(六)
2017/02/25 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
js中el表达式的使用和非空判断方法
2018/03/28 Javascript
Vue.js进阶知识点总结
2018/04/01 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
2021/01/12 Vue.js
原生微信小程序开发中 redux 的使用详解
2021/02/18 Javascript
python中bisect模块用法实例
2014/09/25 Python
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
Python实现单词拼写检查
2015/04/25 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
Python编写合并字典并实现敏感目录的小脚本
2019/02/26 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
行政文员岗位职责
2013/11/08 职场文书
三八节主持词
2014/03/17 职场文书
应届生面试求职信
2014/07/02 职场文书
施工安全协议书范本
2014/09/26 职场文书
民主评议党员总结
2014/10/20 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
web前端之css水平居中代码解析
2021/05/20 HTML / CSS
使用Pytorch实现two-head(多输出)模型的操作
2021/05/28 Python
Python实现简繁体转换
2021/06/07 Python