HTML页面通过JS获取JSON数据并动态加载的方法

作者:白露时间:2026-10-22 10:11:25浏览:340

本文介绍如何在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">&times;</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数据并动态加载到页面的方法,即可有效解决此类前端开发问题。

作者最新文章