封装好的:ajax.js

 function ajax(url, fnSucc,fnFaild){
//1【创建】
if(window.XMLHttpRequest){
var oAjax = new XMLHttpRequest();
}else{
var oAjax = new ActiveXObject("Microsoft.XMLHTTP");
}; //2: 【连接】true:表示异步
oAjax.open('GET',url,true); //3:【发送】
oAjax.send(); //4:【接受】
oAjax.onreadystatechange = function(){ //判断浏览器操作到哪一步
if(oAjax.readyState == 4){//4:读取完成
if(oAjax.status==200){
fnSucc(oAjax.responseText);
}else{
if(fnFaild){
fnFaild(oAjax.status);
}
} }
}
}

结构与js代码:

 <!DOCTYPE html>
<html>
<!--
作者:702004176@qq.com
时间:2017-04-10
描述:
-->
<head>
<meta charset="UTF-8">
<title>ajax+tab</title>
<meta name="Description" content="ajax获取json数据,并传入页面" />
<meta name="author" content="郭菊锋702004176@qq.com"/>
<script src="ajax.js" type="text/javascript" charset="utf-8"></script>
<style type="text/css">
* {
margin: 0;
} body {
font-family: "微软雅黑";
} li {
list-style: none;
} a {
text-decoration: none;
color: #000;
} a:hover {
text-decoration: underline;
color: #194090;
} .clearfix:after {
content: "";
clear: both;
display: block;
} .tabWrap {
overflow: hidden;
width: 611px;
margin: 100px auto;
} .ulWrap {
padding: 0;
} .ulWrap li {
overflow: hidden;
float: left;
width: 199px;
height: 50px;
line-height: 50px;
margin-right: 3px;
text-align: center;
color: #DFE9F6;
background: #5884CF;
} .ulWrap li.Ahover,
.ulWrap li:hover {
cursor: pointer;
background: #194090;
} .tabWrap div {
overflow: hidden;
width: 591px;
padding: 20px;
padding: 15px 5px;
background: #f1f2f3;
border: 1px solid #5884CF;
border-top: 0;
} .tabWrap div.hide {
display: none;
} .tabWrap div p {
margin-top: 10px;
} .tabWrap div img:hover {
-webkit-box-shadow: 1px 2px 4px 1px #8aa59f;
box-shadow: 1px 2px 4px 1px #8aa59f;
}
</style>
</head> <body>
<div class="tabWrap" id="tabWrap">
<ul class="ulWrap clearfix" id="ulWrap">
</ul>
</div>
<script type="text/javascript">
window.onload = function() {
var ulWrap = document.getElementById("ulWrap"),
tabWrap = document.getElementById("tabWrap"),
txtArea = document.getElementById("txtArea"),
oLi = ulWrap.getElementsByTagName('li'),
oDiv = tabWrap.getElementsByTagName('div');
ajax('tab.json', function(str) {
var str = str;
var oJson = (new Function('return (' + str + ')'))();
var a = oJson['tab'];
//for 1-dom
for (var i = 0; i < a.length; i++) {
var ali = document.createElement("li");
var adiv = document.createElement("div");
ali.innerHTML = a[i]['title'];
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>";
ulWrap.appendChild(ali);
tabWrap.appendChild(adiv);
var index = i;
if (index == 0) {
ali.className = "Ahover"
} else {
adiv.className = "hide"
}
}
//for 1 end //for 2-tab
for (var i = 0; i < oLi.length; i++) {
oLi[i].index = i;
oLi[i].onclick = function() {
for (var j = 0; j < oLi.length; j++) {
oLi[j].className = "";
oDiv[j].className = "hide";
}
this.className = "Ahover";
oDiv[this.index].className = "";
}
}
//for 2 end
})
}
</script>
</body> </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":"不怕中国报复 韩叫嚣外国游客很多"
        }
    ]
}

JS-利用ajax获取json数据,并传入页面生成动态tab的更多相关文章

  1. Jquery 模板插件 jquery.tmpl.js 的使用方法(1):基本语法,绑定,each循环,ajax获取json数据

    jquery.tmpl.js 是一个模板js  ,主要有2个方法 (1):$.template()方法,将一段script或者是Html编译为模板,例如 $.template('myTemplate' ...

  2. js进阶ajax读取json数据(ajax读取json和读取普通文本,和获取服务器返回数据(链接)都是一样的,在url处放上json文件的地址即可)

    js进阶ajax读取json数据(ajax读取json和读取普通文本,和获取服务器返回数据(链接)都是一样的,在url处放上json文件的地址即可) 一.总结 ajax读取json和读取普通文本,和获 ...

  3. Struts2.5 利用Ajax将json数据传值到JSP

    AJAX +JSON=>JSP AJAX AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着 ...

  4. ajax获取json数据及实现跨域请求

    最近想练习一下ajax获取json数据 , 首先上网找一些在线的可用来测试的接口. -----------------------------------------------------这里是接口 ...

  5. AngularJS学习笔记(3)——通过Ajax获取JSON数据

    通过Ajax获取JSON数据 以我之前写的与用户交互的动态清单列表为例,使用JSON前todo.html代码如下: <!DOCTYPE html> <html ng-app=&quo ...

  6. ajax获取json数据为undefined--原因解析

    解决办法:var dataObj=eval("("+data+")");//转换为json对象 问题: 1. 碰到一个问题ajax成功获取json数据后,取值显 ...

  7. jQuery AJAX获取JSON数据解析多种方式示例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. java后台设计简单的json数据接口,设置可跨域访问,前端ajax获取json数据

    在开发的过程中,有时候我们需要设计一个数据接口.有时候呢,数据接口和Web服务器又不在一起,所以就有跨域访问的问题. 第一步:简单的设计一个数据接口. 数据接口,听起来高大上,其实呢就是一个简单的Se ...

  9. ajax获取json数据 for select2

    json数据“a.json” [ { "id": "1", "text": "张三" }, { "id&quo ...

随机推荐

  1. exit和wait一起可以彻底清除子进程的资源

    #include<stdio.h> #include<unistd.h> #include<sys/types.h> #include<stdlib.h> ...

  2. java方法——重载2

    什么是Java方法重载 方法重载的定义 1 对于同一个类,如果这个类里面有两个或者多个重名的方法,但是方法的参数个数.类型.顺序至少有一个不一样,这时候局构成方法重载. END 方法重载示例 1 pu ...

  3. iOS边练边学--UITableView性能优化之三种方式循环利用

    一.cell的循环利用方式1: /** * 什么时候调用:每当有一个cell进入视野范围内就会调用 */ - (UITableViewCell *)tableView:(UITableView *)t ...

  4. [oracle] oracle-ibatis-整理

    ① <!-- 复用sql代码 --> <sql id="CUSTOM_CABINET_INFO.QUERY_CABINET"> <dynamic pr ...

  5. OpenCV_基于局部自适应阈值的图像二值化

    在图像处理应用中二值化操作是一个很常用的处理方式,例如零器件图片的处理.文本图片和验证码图片中字符的提取.车牌识别中的字符分割,以及视频图像中的运动目标检测中的前景分割,等等. 较为常用的图像二值化方 ...

  6. (转)YUV420存储格式

    YUV格式有两大类:planar和packed.对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V.对于packed的YUV格式,每个像素点的Y,U ...

  7. 转载:IE下div使用margin:0px auto不居中的原因

    转自:http://www.blogjava.net/sealyu/archive/2010/01/08/308640.html 一般在将div居中显示时,使用css: divX {margin:0  ...

  8. NPOI帮助类(Excel转DataTable、DataTable转Excel)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using NPOI.SS. ...

  9. mysql分组取每组大的记录

    SELECT a.* FROM chat_log a INNER JOIN (SELECT MAX(id) id,to_user FROM chat_log GROUP BY to_user)b ON ...

  10. jquery-创建元素和添加子元素

    一.创建新元素 1.使用$函数创建新元素 var $newElement=$('<div><p>段落</p></div>');//创建元素,返回jQue ...