根据json字符串生成Html的一种方式


Posted in Javascript onJanuary 09, 2013

文章说明
本文介绍了根据Json串生成Html的一种方式(只是简单实现了文本框,密码框,下拉框)。只是觉得好玩才这样做,如果觉得没有任何价值,请忽略。不足指出希望各位大牛指点。后续将根据各位的指点继续完善。

功能说明
根据json字符串生成Html的一种方式
在左侧输入框中输入Json串,点击执行时根据输入的Json串在右侧展示区显示出相应的Html(使用Jquery1.4.4)
HTML:

<table style="width:100%; "> 
<col width="200px;" /> 
<tr> 
<td>Json输入框</td> 
<td>展示区</td> 
</tr> 
<tr> 
<td> 
<textarea id="txtJson" rows="20" cols="50"> 
</textarea> 
</td> 
<td valign="top"> 
<div id="divShow"> 
</div> 
</td> 
</tr> 
<tr> 
<td></td> 
<td> 
<input id="btnExec" type="button" value="执行" /> 
</td> 
</tr> 
</table>

JS代码:
$(document).ready(function () { 
$("#btnExec").click(function () { 
try{ 
var objList = eval($("#txtJson").val()); 
jsonToControl(objList); 
} 
catch(e){ 
alert("json格式错误"); 
} 
}); 
}); 
function jsonToControl(jsonObj) { 
$("#divShow").empty(); 
$.each(jsonObj, function (index, item) { 
var control = null; 
var title = $("<label />"); 
switch (item.type) { 
case "textbox": 
control = createTextBox(); 
break; 
case "select": 
control = createSelect(item); 
break; 
case "password": 
control = createPassword(); 
break; 
//------------------------------ 
// 其它控件在这里加代码 
//------------------------------ 
} 
if (item.title != null) { 
title.text(item.title); 
} 
if (control != null) { 
control = setAttritube(control, item); 
$("#divShow").append(title); 
$("#divShow").append(control); 
$("#divShow").append("<br/>"); 
} 
}) 
} 
//设置控件的样式 
function setAttritube(control, item) { 
if (item.width != null) { 
control.width(item.width); 
} 
//-------------------------------- 
// 其他样式在这里加代码 
//-------------------------------- 
return control; 
} 
//创建TextBox 
function createTextBox() { 
return $("<input type='textbox' />"); 
} 
//创建密码框 
function createPassword() { 
return $("<input type='password'/>"); 
} 
//创建Select 
function createSelect(item) { 
var c = $("<select></select>"); 
if(item.items != null ){ 
$.each(item.items,function(index,i){ 
$("<option value='"+i.key+"' checked='checked'>"+i.value+"</option>").appendTo(c); 
}) 
} 
return c; 
}

非常感谢各位抽空看完。如果有任何意见或建议,请留言。
Javascript 相关文章推荐
工作中常用到的JS表单验证代码(包括例子)
Nov 11 Javascript
jQuery 中使用JSON的实现代码
Dec 01 Javascript
当某个文本框成为焦点时即清除文本框内容
Apr 28 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
Dec 18 Javascript
js鼠标点击图片实现随机变换图片的方法
Feb 16 Javascript
jQuery中delegate()方法的用法详解
Oct 13 Javascript
基于slideout.js实现移动端侧边栏滑动特效
Nov 28 Javascript
JavaScript错误处理和堆栈追踪详解
Apr 18 Javascript
详解Javascript中new()到底做了些什么?
Mar 29 Javascript
微信小程序实现运动步数排行功能(可删除)
Jul 05 Javascript
layui实现tab的添加拒绝重复的方法
Sep 04 Javascript
javascript实现搜索筛选功能实例代码
Nov 12 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
Jan 09 #Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
Jan 09 #Javascript
实现web打印的各种方法介绍及实现代码
Jan 09 #Javascript
js去除重复字符串两种实现方法
Jan 09 #Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
Jan 09 #Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
Jan 09 #Javascript
一行代码实现纯数据json对象的深度克隆实现思路
Jan 09 #Javascript
You might like
php5 and xml示例
2006/11/22 PHP
封装一个PDO数据库操作类代码
2009/09/09 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
php获取url参数方法总结
2014/11/13 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
yii2的restful api路由实例详解
2019/05/14 PHP
javascript IFrame 强制刷新代码
2009/07/23 Javascript
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
firefox下frameset取不到值的解决方法
2010/09/06 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
JSON 必知必会 观后记
2016/10/27 Javascript
Node.js使用NodeMailer发送邮件实例代码
2017/03/06 Javascript
微信小程序tabBar用法实例详解
2017/12/04 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
angularJs中$http获取后台数据的实例讲解
2018/08/08 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
vue.js实现图书管理功能
2019/09/24 Javascript
微信小程序webSocket的使用方法
2020/02/20 Javascript
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
[01:03:22]LGD vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
python encode和decode的妙用
2009/09/02 Python
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
Python利用WMI实现ping命令的例子
2019/08/14 Python
通过实例解析Python return运行原理
2020/03/04 Python
python selenium xpath定位操作
2020/09/01 Python
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
深入探究HTML5的History API
2015/07/09 HTML / CSS
白俄罗斯女装和针织品网上商店:Presli.by
2019/10/13 全球购物
英国运动风奢侈品购物网站:Maison De Fashion
2020/08/28 全球购物
2014年教研员工作总结
2014/12/23 职场文书
检讨书范文300字
2015/01/28 职场文书
小程序实现筛子抽奖
2021/05/26 Javascript
VW、VH适配移动端的解决方案与常见问题
2023/05/21 HTML / CSS