视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
html中通过JS获取JSON数据并加载的方法
2020-11-27 22:24:32 责编:小采
文档

在写内容逻辑重复性的页面时,用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不会报错,很难发现。

下载本文
显示全文
专题