动态添加标签

接着上篇文章接下来要做的就是,从后台获取数据,然后赋值并显示,还记得上篇文章中轮播图和列表标签是静态添加的,那么问题来了,如果这个数据是从后台服务器那边获取的,拿轮播图为例,后台给我们返回10张图片的数据,那我们应该怎么创建标签呢?呃...可能有很多小伙伴读到这里没有明白什么意思,没关系你看完这篇文章就会明白的。

之前咱们的标签是这样写的

![](http://img2.imgtn.bdimg.com/it/u=3435748019,1733487343&fm=21&gp=0.jpg)

标题1

![](http://img1.imgtn.bdimg.com/it/u=933204148,833772717&fm=21&gp=0.jpg)

标题2

![](http://img0.imgtn.bdimg.com/it/u=522735967,1809391751&fm=21&gp=0.jpg)

标题3

在上面代码中看到的是一共三个img标签,那如果后台给返回10张图片,我们的这个结构应该怎么写呢?

这个时候我们需要从网络获取到数据,然后根据获取的数据数量进行循环创建标签并赋值。一口气说了这么长,那我们就一步一步来吧

第一步:使用Ajax网络请求

网络请求必须在mui.plusReady()函数中进行,具体原因请查看官方文档http://ask.dcloud.net.cn/article/122

来看下首页轮播接口:

http://c.m.163.com/nc/article/headline/T1348647853363/0-20.html?from=toutiao&passport=&devId=OPdeGFsVSojY0ILFe6009pLR%2FMsg7TLJv5TjaQQ6Hpjxd%2BaWU4dx4OOCg2vE3noj&size=20&version=5.5.3&spever=false&net=wifi&lat=&lon=&ts=1456985286&sign=%2BY9lXIDh3W7j69unWYNEiSG3So2sMceBy%2B%2FiFf2ZfHh48ErR02zJ6%2FKXOnxX046I&encryption=1&canal=appstore

以下数据结构:

{

"T1348647853363": [

{

"ads": [

{

"imgsrc": "http://img1.cache.netease.com/3g/2016/3/4/201603041128337df68.jpg",

"subtitle": "",

"tag": "photoset",

"title": "人大发布会开始 傅莹为发言人",

"url": "00AN0001|112244"

},

{

"imgsrc": "http://img2.cache.netease.com/3g/2016/3/4/201603041111218ff8a.jpg",

"subtitle": "",

"tag": "photoset",

"title": "人大预备会议开始 代表步入会场",

"url": "00AN0001|112238"

}

]

}

拿到接口之后,我们要去请求,如果请求成功,我们会走success这个回调函数,

mui.init();

mui.plusReady(function(){

mui.ajax('http://c.m.163.com/nc/article/headline/T1348647853363/0-20.html?from=toutiao&passport=&devId=OPdeGFsVSojY0ILFe6009pLR%2FMsg7TLJv5TjaQQ6Hpjxd%2BaWU4dx4OOCg2vE3noj&size=20&version=5.5.3&spever=false&net=wifi&lat=&lon=&ts=1456985286&sign=%2BY9lXIDh3W7j69unWYNEiSG3So2sMceBy%2B%2FiFf2ZfHh48ErR02zJ6%2FKXOnxX046I&encryption=1&canal=appstore',{

dataType:'json',

type:'get',//请求方式

timeout:10000,//超时

success:function(data){//成功

},

error:function(error){//失败

console.log("返回失败");

}

});

})

到这一步已经成功返回data,下一步要把返回过来的数据拿出来进行解析

第二步:数据解析

首先来分析一下,哪些数据是我们想要,显而易见图片和标题是我们想要获取到的。为了看起来比较清晰,我在这里重新写一个函数dataAnalyze(),在这个函数里面进行解析数据,在success回调里面去调用。

function dataAnalyze(data){

//图片和标题都在‘ads’这个数组中,首先要拿到这个数组,这里面使用点语法获取到数组。

var arr = data.T1348647853363[0].ads;//获取到‘ads’数组

for(var i = 0; i

//对数组遍历分别拿到图片和标题

console.log(arr[i].imgsrc);

console.log(arr[i].title);

}

}

dataAnalyze()函数写好了之后,我们需要在success回调里面去调用

mui.init();

mui.plusReady(function(){

mui.ajax('http://c.m.163.com/nc/article/headline/T1348647853363/0-20.html?from=toutiao&passport=&devId=OPdeGFsVSojY0ILFe6009pLR%2FMsg7TLJv5TjaQQ6Hpjxd%2BaWU4dx4OOCg2vE3noj&size=20&version=5.5.3&spever=false&net=wifi&lat=&lon=&ts=1456985286&sign=%2BY9lXIDh3W7j69unWYNEiSG3So2sMceBy%2B%2FiFf2ZfHh48ErR02zJ6%2FKXOnxX046I&encryption=1&canal=appstore',{

dataType:'json',

type:'get',//请求方式

timeout:10000,//超时

success:function(data){//成功

dataAnalyze(data);

},

error:function(error){//失败

console.log("返回失败");

}

});

})

第三步:动态创建标签并赋值

还记得上篇文章中写的轮播图吗?就是下面这一坨

![](http://img2.imgtn.bdimg.com/it/u=3435748019,1733487343&fm=21&gp=0.jpg)

标题1

![](http://img1.imgtn.bdimg.com/it/u=933204148,833772717&fm=21&gp=0.jpg)

标题2

![](http://img0.imgtn.bdimg.com/it/u=522735967,1809391751&fm=21&gp=0.jpg)

标题3

现在我们要做的就是把这些结构里面的mui-slider-item给删除掉,因为我们要做的是动态添加这些item,为了方便通过ID选择器查找到到对应标签,这里面添加了一个id,修改完成之后剩余如下代码:

//图片、标题

//图片滚动标记

接下来我们要在dataAnalyze()函数里面去循环创建标签并且赋值,代码如下

function dataAnalyze(data){

var arr = data.T1348647853363[0].ads;

console.log(data);

var finalList = null;

for(var i = 0; i

console.log(arr[i].imgsrc);

console.log(arr[i].title);

//轮播图标签结构

finalList = '

[站外图片上传中……(7)]

'+arr[i].title+'

'

//插入slider-img标签里面

$("#slider-img").append(finalList);

//插入轮播标记

$("#slider-indicator").append('

//插入完成必须初始化,否则图片不能滚动

mui('.mui-slider').slider({

interval:0//自动轮播周期,若为0则不自动播放,默认为0;

});

}

}

这个时候我们就完成了动态创建,添加,赋值.轮播图已经完成。

轮播图

第四步:新闻列表赋值

开始给新闻列表创建赋值,还是来先看下新闻列表数据结构,列表页面要用的数据莫非就是图片、抬头、描述。

{

"T1348647853363": [

{

"boardid": "3g_bbs",

"clkNum": 0,

"digest": "小伙送女友卫生巾,女友十分感动,还他了一个用过的。",

"docid": "BHB8OPBL00964JJM",

"downTimes": 0,

"id": "BHB8OPBL00964JJM",

"img": "http://img5.cache.netease.com/3g/2016/3/4/2016030417255966ffe.jpg",

"imgsrc": "http://img5.cache.netease.com/3g/2016/3/4/2016030417255966ffe.jpg",

"imgType": 0,

"interest": "A",

"lmodify": "2016-03-04 19:05:26",

"picCount": 0,

"program": "HY",

"prompt": "成功为您推荐10条新内容",

"ptime": "2016-03-04 18:57:12",

"recReason": "热门文章(原创)",

"recType": 0,

"replyCount": 260,

"replyid": "BHB8OPBL00964JJM",

"source": "新闻七点整",

"TAG": "语音",

"TAGS": "语音",

"template": "manual",

"title": "新闻七点整:送你一车姨妈巾",

"unlikeReason": [

"原创/1",

"来源:新闻七点整/4",

"内容重复/6"

],

"upTimes": 0

}

]

}

//列表数据请求

mui.ajax('http://c.m.163.com/nc/article/headline/T1348647853363/30-20.html?from=toutiao&passport=&devId=OPdeGFsVSojY0ILFe6009pLR%2FMsg7TLJv5TjaQQ6Hpjxd%2BaWU4dx4OOCg2vE3noj&size=20&version=5.5.3&spever=false&net=wifi&lat=&lon=&ts=1456985878&sign=oDwq9mBweKUtUuiS%2FPvB015PyTDKHSxuyuVq2076XQB48ErR02zJ6%2FKXOnxX046I&encryption=1&canal=appstore',{

dataType:'json',

type:'get',

timeout:10000,

success:function(data){

},

error:function(error){

console.log("列表返回失败");

}

});

还是原来的套路,返回成功之后,我们为了清晰,再写一个名字为listDataAnalyze()函数用来专门用来解析列表的数据,并且创建标签并赋值。

//用来处理列表数据的函数

function listDataAnalyze(data){

var arrayObj = data.T1348647853363;

for(var i = 0; i

console.log(arrayObj[i].title);

finalList = '

[站外图片上传中……(8)]

'+arrayObj[i].title+'

'+arrayObj[i].digest+'

';

$("#tableView-List").append(finalList);

}

}

我们这个函数写完之后呢,来在数据请求成功之后调用此函数

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 22.0px Consolas; color: #a5b2b9}p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 22.0px Consolas; color: #2eafa9}p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 22.0px Consolas}p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 22.0px Consolas; color: #060606}p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 22.0px Consolas; color: #6b82d9}span.s1 {color: #000000}span.s2 {color: #060606}span.s3 {color: #596972}span.s4 {color: #2eafa9}span.s5 {color: #ad5cff}span.s6 {color: #6b82d9}span.s7 {color: #b58a00}span.s8 {color: #3c7400}span.Apple-tab-span {white-space:pre}

//列表数据请求

mui.ajax('http://c.m.163.com/nc/article/headline/T1348647853363/30-20.html?from=toutiao&passport=&devId=OPdeGFsVSojY0ILFe6009pLR%2FMsg7TLJv5TjaQQ6Hpjxd%2BaWU4dx4OOCg2vE3noj&size=20&version=5.5.3&spever=false&net=wifi&lat=&lon=&ts=1456985878&sign=oDwq9mBweKUtUuiS%2FPvB015PyTDKHSxuyuVq2076XQB48ErR02zJ6%2FKXOnxX046I&encryption=1&canal=appstore',{

dataType:'json',

type:'get',

timeout:10000,

success:function(data){

listDataAnalyze(data);

},

error:function(error){

console.log("列表返回失败");

}

});

还记得上一篇文章中列表的这一坨吗?

  • [站外图片上传中……(9)]

    标题

    内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容

  • [站外图片上传中……(10)]

    标题

    内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容

  • [站外图片上传中……(11)]

    标题

    内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容

  • [站外图片上传中……(12)]

    标题

    内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容

  • [站外图片上传中……(13)]

    标题

    内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容

  • [站外图片上传中……(14)]

    标题

    内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容

  • [站外图片上传中……(15)]

    标题

    内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容

  • [站外图片上传中……(16)]

    标题

    内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容

现在修改为下面代码,并且添加一个id为了方便获取。

好了,这个列表也已经加载出来了,效果如下:

效果

好了,大功告成,今天的学习就到这里,今天的内容代码改动可能比较大,感觉代码很多,其实跟着我的步骤一步一步来肯定能写出来,加油加油。我会准们出一篇文章讲解怎么抓包。

下集预告:TabBar图标修改,页面跳转

未完待续...

app用html传数据,使用HTML5开发App(三)相关推荐

  1. app用html传数据,通过html调用App并传送参数倒App中

    突然有一天玩360手机助手下载东西,但是点击安装直接就跳转到App中,卧槽,这比较新奇,以前真没觉得有这么一回事,才疏学浅呐. 一.通过html页面打开Android本地的app 简单的html页面 ...

  2. HTML5开发APP有哪些优点和缺点?HTML5优势和劣势大对比

    HMTL5开发APP有哪些优点和缺点?对比起来看,HTML5开发APP的优势明显大于劣势.比如HTML5有跨平台,开发成本低,推广更容易等等优点,同时它也有着一些缺点,比如容易受到网络的限制,用户体验 ...

  3. 懂商业的技术合伙人(14):使用HTML5开发App客户端,HTML5+和MUI框架基本介绍

    我非常倾向使用HTML5,搞定PC Web.Mobile Web.Android和iOS.微信小程序等各种UI开发. 作为技术人员,一次学习,处处使用,是个美好的愿望. 本文把2014~2017年,零 ...

  4. php app接口id参数类型过滤,PHP开发APP接口---返回数据的封装类

    /** * app返回数据类 * 1.接受多维,缺少键名的数组, * 2.可由输入的format参数决定返回数据格式 * 例子:Response::show(200, 'success', $data ...

  5. HTML5开发APP技术文档

    HTML5开发APP技术文档   一.环境参数 1.技术语言:HTML.CSS.ES6.Node.js等: 2.框架:Vue.js 2.x.Cordova: 3.开发系统:mac.windows等: ...

  6. 苹果手机利用itune和手机上的app电脑互传数据

    苹果手机可以利用APP和电脑互传数据.

  7. HTML5 开发APP

    近期在做app,现在项目进行了一段时间,我打算把自己的经验写出来,给自己总结一下也给会用小伙伴看一下.本人前端一枚.我们所以能选的技术就是CSS,HTML,JS了,经过准备我决定用HBuilder 准 ...

  8. html5开发app的缺点,全解HTML 5在移动Web应用的优劣势

    关于HTML5 HTML5具有 语义学. 本地存储. 设备访问. 连接性. 多媒体. 平面和三维效果. 性能和集成和 CSS3八大技术特征.让Web应用进入无插件时代,在功能和性能上逼近桌面应用.促使 ...

  9. [APP资讯] 开发一个App要多少钱?有免费开发App的网站吗?

    试想,如果你是装潢公司老板,被问及:"装修一个房子要多少钱?",你会怎么回答?所以,当我被人问及:"开发一个App要多少钱?"时,我的感觉跟你一样一样的. 拿出 ...

最新文章

  1. ICML 2020: 从Alignment 和 Uniformity的角度理解对比表征学习
  2. 真正的人工智能至少还要几百年才能实现,你信吗?
  3. java学习笔记(九)----多线程
  4. 如何成为一位「不那么差」的程序员
  5. Java入门算法(动态规划篇2:01背包精讲)
  6. 【HDU - 2104】hide handkerchief (素数)
  7. 剑指Offer——跳台阶
  8. SQL Server 2017:列存储就地更新
  9. apache网络服务的搭建和配置
  10. Android Jetpack 之 DataStore 初探
  11. IDEA添加项目启动配置
  12. 机器学习 | 交叉验证
  13. 微信小程序全国巡回沙龙杭州站-芋头演讲详细内容及PPT
  14. NetLogo学习笔记1 —— 初步认识
  15. 仿真软件测试基尔霍夫定律,标签:基尔霍夫定律
  16. 汇编语言实验二 汇编语言程序设计(顺序、多分支、循环)
  17. Machine Learning in Action 读书笔记---第3章 决策树
  18. 环保设施运行在线监控
  19. swust oj#160促销计算
  20. java基于springboot+vue的大学生宿舍公寓管理系统 element

热门文章

  1. 【1732. 找到最高海拔】
  2. 设计模式之组合模式(复合模式)
  3. 制作一款Arduino酒精检测仪的设计
  4. 微信开放平台之第三方平台代公众号发起网页授权
  5. 手把手教你调用百度api(以花卉识别为例)
  6. 一文看懂社交新零售的前世今生
  7. Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应...
  8. 宇树机器狗开发(1):环境安装及遇到的一些问题
  9. stm32 mqtt
  10. 蓝桥杯(python)——星系炸弹