封装好的: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. Python中的字符串操作总结(Python3.6.1版本)

    Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...

  2. mac上php+nginx配置

    brew的安装: ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)”php安装和配置bre ...

  3. [Django学习]中间件

    中间件 是一个轻量级.底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出 激活:添加到Django配置文件中的MIDDLEWARE_CLASSES元组中 每个中间件 ...

  4. LINQ操作符一:Select

    一.什么是LINQ?它可以用来做什么 语言集成查询(Language Integrated Query,LINQ)是一系列标准查询操作符的集合,这些操作符几乎对每一种数据源的导航.过滤和执行操作都提供 ...

  5. etl数据库查询

    //----------------------------------------利用数据库查询按钮查询-------------------------------------------- st ...

  6. 【转】ImageView的Scaletype参数设置

    ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等. 设置的方式包括: 1. 在layout xml中定义Android:s ...

  7. A/libc:fatal signal 11(SIGSEGV).code 1, fault addr 0x0 in tid 26488 (VideoEncoder)

    在调试Camera模块:发现相同的代码在厂家提供的环境里边编译.就是ok的,在我们的源码树中编译,将HAL库推进去后.就会signal 11退出. 一.现象 F/libc ( ): Fatal sig ...

  8. TCP/IP和Socket的关系

    要写网络程序就必须用Socket,这是程序员都知道的.而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,w ...

  9. 关于HFile的存储结构梳理以及快速定位rowkey

    转自:http://blog.csdn.net/yangbutao/article/details/8394149 了解了布隆过滤器作用于HFile之上以及对HFile有了更深层次了解. 另有:htt ...

  10. zqgame《每日一言》

    优秀决策者九特质1.能够接受不确定性:2.做事懂得轻重缓急:3.善于聆听:4.能够长远地看问题:5.能够看到大局,以大局为重:6.做事不优柔寡断,干脆利索.立即行动:7.善于独立思考:8.能充分调动团 ...