HTML页面通过JS获取JSON数据并动态加载的方法
本文介绍如何在HTML页面中使用JavaScript和jQuery获取JSON数据,并将其动态插入到指定DOM元素中。重点解析了JSON格式对URL符号的限制、字符串拼接时的细节处理,以及利用after方法插入HTML的正确姿势,帮助开发者避免常见调试陷阱。
JSON数据加载的应用场景
在处理内容逻辑重复性较高的页面时,使用JSON数据能够显著提升编程效率,并简化后续的数据维护工作。例如在视频专题页面中,为了展示多列视频数据,采用JSON作为数据源是较为合适的选择。
HTML与JS实现代码
HTML结构部分仅展示核心代码,实际开发中需要引入jQuery库以支持后续操作。
<div class="container-fluid content ">
<div class="container neirong">
<div class="left fl">
<div class="title">
热门视频
</div>
<div class="medialist">
</div>
</div></div>
</div>
具体的JavaScript实现代码如下。
<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格式与URL编码处理
首先需要创建JSON文件。需要注意的是,JSON格式对数据内容有严格规范,它无法识别URL中的一些特殊符号。如果未处理这些符号,JSON解析会报错,进而阻断JavaScript进程,导致页面上数据无法显示。这一隐蔽问题往往难以排查,因为JSON格式错误在JS执行时不会直接抛出异常。解决方案是使用encode方法对URL进行格式化,再将其写入JSON文件;在HTML端展示时,则需使用decode方法还原。
DOM插入与字符串拼接注意事项
第二个常见误区是将HTML字符串插入到指定标签中。实现此功能有四种方法,建议正确使用after方法,避免用法错误导致布局异常。
第三点需注意字符串拼接的细节。在拼接HTML字符串时,切勿遗漏加号(+)。哪怕少写一个加号,也会导致拼接错误,而这类错误在JavaScript中通常不会报错,极难排查,往往需要花费大量时间才能发现。
综上所述,掌握了上述获取JSON数据并动态加载到页面的方法,即可有效解决此类前端开发问题。
AOS.js 动画不触发怎么办?排查 DOM 加载与移动端兼容问题
2026-11-05 17:02:26
sigma.js 怎么实现节点点击、拖拽与悬停提示交互
2026-11-05 15:03:27
Matter.js 与 PixiJS/Three.js 集成:分离物理计算与渲染
2026-11-05 13:43:48
主流JS弹幕库选型指南:Danmaku.js等库的功能与体积对比
2026-11-05 09:28:19
JavaScript点击事件监听与交互效果实例
2026-11-05 09:10:19
