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":"不怕中国报复 韩叫嚣外国游客很多"
        }
    ]
}

目录
相关文章
|
24天前
|
JavaScript 算法 前端开发
采招网JS逆向:基于AES解密网络数据
采招网JS逆向:基于AES解密网络数据
35 0
|
20天前
|
存储 JSON API
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
——在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦! 淘宝API接口(如淘宝开放平台提供的API)允许开发者获取淘宝商品的各种信息,包括商品详情。然而,需要注意的是,直接访问淘宝的商品数据API通常需要商家身份或开发者权限,并且需要遵循淘宝的API使用协议。
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
|
8天前
|
JSON JavaScript 前端开发
Haskell中的数据交换:通过http-conduit发送JSON请求
Haskell中的数据交换:通过http-conduit发送JSON请求
|
17天前
|
JSON 前端开发 数据格式
layui 穿梭框transfer组件 数据data用ajax来获取
layui 穿梭框transfer组件 数据data用ajax来获取
28 2
|
25天前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
27天前
|
JSON JavaScript 数据格式
js实现更新数据
js实现更新数据
33 1
|
11天前
|
存储 JSON API
Python编程:解析HTTP请求返回的JSON数据
使用Python处理HTTP请求和解析JSON数据既直接又高效。`requests`库的简洁性和强大功能使得发送请求、接收和解析响应变得异常简单。以上步骤和示例提供了一个基础的框架,可以根据你的具体需求进行调整和扩展。通过合适的异常处理,你的代码将更加健壮和可靠,为用户提供更加流畅的体验。
32 0
|
18天前
|
Java 开发者 关系型数据库
JSF与AWS的神秘之旅:如何在云端部署JSF应用,让你的Web应用如虎添翼?
【8月更文挑战第31天】在云计算蓬勃发展的今天,AWS已成为企业级应用的首选平台。本文探讨了在AWS上部署JSF(JavaServer Faces)应用的方法,这是一种广泛使用的Java Web框架。通过了解并利用AWS的基础设施与服务,如EC2、RDS 和 S3,开发者能够高效地部署和管理JSF应用。文章还提供了具体的部署步骤示例,并讨论了使用AWS可能遇到的挑战及应对策略,帮助开发者更好地利用AWS的强大功能,提升Web应用开发效率。
42 0
|
21天前
|
JSON 前端开发 JavaScript
[译] 处理 JavaScript 中的非预期数据
[译] 处理 JavaScript 中的非预期数据
|
21天前
|
JSON Java API
Jackson:SpringBoot中的JSON王者,优雅掌控数据之道
【8月更文挑战第29天】在Java的广阔生态中,SpringBoot以其“约定优于配置”的理念,极大地简化了企业级应用的开发流程。而在SpringBoot处理HTTP请求与响应的过程中,JSON数据的序列化和反序列化是不可或缺的一环。在众多JSON处理库中,Jackson凭借其高效、灵活和强大的特性,成为了SpringBoot中处理JSON数据的首选。今天,就让我们一起深入探讨Jackson如何在SpringBoot中优雅地控制JSON数据。
30 0