JS-利用ajax获取json数据,并传入页面生成动态tab

简介: 封装好的:ajax.js 1 function ajax(url, fnSucc,fnFaild){ 2 //1【创建】 3 if(window.XMLHttpRequest){ 4 var oAjax = new XMLHttpRequest(); 5 ...

封装好的:ajax.js

 1 function ajax(url, fnSucc,fnFaild){
 2     //1【创建】
 3     if(window.XMLHttpRequest){
 4         var oAjax = new XMLHttpRequest();
 5     }else{
 6         var oAjax = new ActiveXObject("Microsoft.XMLHTTP");
 7     };
 8     
 9     //2: 【连接】true:表示异步
10     oAjax.open('GET',url,true);
11     
12     //3:【发送】
13     oAjax.send();
14     
15     //4:【接受】
16     oAjax.onreadystatechange = function(){
17         
18         //判断浏览器操作到哪一步
19         if(oAjax.readyState == 4){//4:读取完成
20             if(oAjax.status==200){
21                 fnSucc(oAjax.responseText);
22             }else{
23                 if(fnFaild){
24                     fnFaild(oAjax.status);
25                 }
26             }
27             
28         }
29     }
30 }

结构与js代码:

  1 <!DOCTYPE html>
  2 <html>
  3 <!--
  4     作者:702004176@qq.com
  5     时间:2017-04-10
  6     描述:
  7 -->
  8     <head>
  9         <meta charset="UTF-8">
 10         <title>ajax+tab</title>
 11         <meta name="Description" content="ajax获取json数据,并传入页面" />
 12         <meta name="author" content="郭菊锋702004176@qq.com"/>
 13         <script src="ajax.js" type="text/javascript" charset="utf-8"></script>
 14         <style type="text/css">
 15             * {
 16                 margin: 0;
 17             }
 18             
 19             body {
 20                 font-family: "微软雅黑";
 21             }
 22             
 23             li {
 24                 list-style: none;
 25             }
 26             
 27             a {
 28                 text-decoration: none;
 29                 color: #000;
 30             }
 31             
 32             a:hover {
 33                 text-decoration: underline;
 34                 color: #194090;
 35             }
 36             
 37             .clearfix:after {
 38                 content: "";
 39                 clear: both;
 40                 display: block;
 41             }
 42             
 43             .tabWrap {
 44                 overflow: hidden;
 45                 width: 611px;
 46                 margin: 100px auto;
 47             }
 48             
 49             .ulWrap {
 50                 padding: 0;
 51             }
 52             
 53             .ulWrap li {
 54                 overflow: hidden;
 55                 float: left;
 56                 width: 199px;
 57                 height: 50px;
 58                 line-height: 50px;
 59                 margin-right: 3px;
 60                 text-align: center;
 61                 color: #DFE9F6;
 62                 background: #5884CF;
 63             }
 64             
 65             .ulWrap li.Ahover,
 66             .ulWrap li:hover {
 67                 cursor: pointer;
 68                 background: #194090;
 69             }
 70             
 71             .tabWrap div {
 72                 overflow: hidden;
 73                 width: 591px;
 74                 padding: 20px;
 75                 padding: 15px 5px;
 76                 background: #f1f2f3;
 77                 border: 1px solid #5884CF;
 78                 border-top: 0;
 79             }
 80             
 81             .tabWrap div.hide {
 82                 display: none;
 83             }
 84             
 85             .tabWrap div p {
 86                 margin-top: 10px;
 87             }
 88             
 89             
 90             .tabWrap div img:hover {
 91                 -webkit-box-shadow: 1px 2px 4px 1px #8aa59f;
 92                 box-shadow: 1px 2px 4px 1px #8aa59f;
 93             }
 94         </style>
 95     </head>
 96 
 97     <body>
 98         <div class="tabWrap" id="tabWrap">
 99             <ul class="ulWrap clearfix" id="ulWrap">
100             </ul>
101         </div>
102         <script type="text/javascript">
103             window.onload = function() {
104                 var ulWrap = document.getElementById("ulWrap"),
105                     tabWrap = document.getElementById("tabWrap"),
106                     txtArea = document.getElementById("txtArea"),
107                     oLi = ulWrap.getElementsByTagName('li'),
108                     oDiv = tabWrap.getElementsByTagName('div');
109                 ajax('tab.json', function(str) {
110                     var str = str;
111                     var oJson = (new Function('return (' + str + ')'))();
112                     var a = oJson['tab'];
113                     //for 1-dom
114                     for (var i = 0; i < a.length; i++) {
115                         var ali = document.createElement("li");
116                         var adiv = document.createElement("div");
117                         ali.innerHTML = a[i]['title'];
118                         adiv.innerHTML = "<a href='#'><img src='" + a[i]['image'] + "'/></a><p><a href='#'>" + a[i]['descript1'] + "</a></p><p><a href='#'>" + a[i]['descript2'] + "</a></p><p><a href='#'>" + a[i]['descript3'] + "</p><p><a href='#'>" + a[i]['descript4'] + "</a></p>";
119                         ulWrap.appendChild(ali);
120                         tabWrap.appendChild(adiv);
121                         var index = i;
122                         if (index == 0) {
123                             ali.className = "Ahover"
124                         } else {
125                             adiv.className = "hide"
126                         }
127                     }
128                     //for 1 end
129 
130                     //for 2-tab
131                     for (var i = 0; i < oLi.length; i++) {
132                         oLi[i].index = i;
133                         oLi[i].onclick = function() {
134                             for (var j = 0; j < oLi.length; j++) {
135                                 oLi[j].className = "";
136                                 oDiv[j].className = "hide";
137                             }
138                             this.className = "Ahover";
139                             oDiv[this.index].className = "";
140                         }
141                     }
142                     //for 2 end
143                 })
144             }
145         </script>
146     </body>
147 
148 </html>

json数据

{
    "tab":[
        {
            "title":"新闻",
            "image":"image/img0.jpg",
            "descript1":"中国焦虑障碍患病率为4.98% 患病率为何在上升?",
            "descript2":"病床上敬礼交警病逝,4岁女儿被确诊急性白血病",
            "descript3":"小伙200天穷游50多个城市 剃光头发在寺庙当义工",
            "descript4":"过半白领午餐吃快餐和外卖 凭“颜值“判断食物好坏"
        },
        {
            "title":"娱乐",
            "image":"image/img1.jpg",
            "descript1":"《变形金刚》宇宙要来了!《大黄蜂》定档明年6月",
            "descript2":"《傲娇与偏见》主演亮相本周《快乐大本营》",
            "descript3":"张杰《歌手》玩融合曲风 再展人声吉他高音",
            "descript4":"同样的事张馨予做遭骂 baby却获赞"
        },
        {
            "title":"军事",
            "image":"image/img2.jpg",
            "descript1":"西方耍赖皮坑中国 今天:我们告定欧盟",
            "descript2":"此人到访中国 印总理莫迪暴跳如雷",
            "descript3":"美版“知乎“:为什么老外去中国后都不想走?",
            "descript4":"不怕中国报复 韩叫嚣外国游客很多"
        }
    ]
}

目录
相关文章
|
Web App开发 数据采集 JavaScript
动态网页爬取:Python如何获取JS加载的数据?
动态网页爬取:Python如何获取JS加载的数据?
1805 58
|
机器学习/深度学习 数据采集 存储
动态渲染页面智能嗅探:机器学习判定AJAX加载触发条件
本文介绍了一种基于机器学习的智能嗅探系统,用于自动判定动态渲染页面中AJAX加载的最佳触发时机。系统由请求分析、机器学习判定、数据采集和文件存储四大模块构成,采用爬虫代理技术实现高效IP切换,并通过模拟真实浏览器访问抓取微博热搜及评论数据。核心代码示例展示了如何调用微博接口获取榜单与评论,并利用预训练模型预测AJAX触发条件,最终将结果以JSON或CSV格式存储。该方案提升了动态页面加载效率,为信息采集与热点传播提供了技术支持。
392 15
动态渲染页面智能嗅探:机器学习判定AJAX加载触发条件
|
Web App开发 数据采集 前端开发
Python + Chrome 爬虫:如何抓取 AJAX 动态加载数据?
Python + Chrome 爬虫:如何抓取 AJAX 动态加载数据?
|
数据采集 JavaScript 前端开发
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
用array.filter()来实现数据筛选、数据清洗和链式调用,相对于for循环更加清晰,语义化强,能显著提升代码的可读性和可维护性。博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
前端开发 JavaScript
回顾前端页面发送ajax请求方式
回顾前端页面发送ajax请求方式
192 18
|
监控 JavaScript 算法
深度剖析 Vue.js 响应式原理:从数据劫持到视图更新的全流程详解
本文深入解析Vue.js的响应式机制,从数据劫持到视图更新的全过程,详细讲解了其实现原理和运作流程。
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
393 3
|
存储 JSON JavaScript
JavaScript JSON
【10月更文挑战第7天】JSON 是 JavaScript 中非常重要的一个数据格式,它为数据的表示和传输提供了一种简单而有效的方式。掌握 JSON 的使用方法和特点,对于开发高质量的 JavaScript 应用具有重要意义。
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
628 0
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南

热门文章

最新文章