根据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 相关文章推荐
jQuery 学习第五课 Ajax 使用说明
May 17 Javascript
jQuery实现内容定时切换效果完整实例
Apr 06 Javascript
浅谈js的ajax的异步和同步请求的问题
Oct 07 Javascript
Javascript 对cookie操作详解及实例
Dec 29 Javascript
JS实现的DOM插入节点操作示例
Apr 04 Javascript
详解vue的diff算法原理
May 20 Javascript
select2 ajax 设置默认值,初始值的方法
Aug 09 Javascript
Vue动态获取width的方法
Aug 22 Javascript
JavaScript实现预览本地上传图片功能完整示例
Mar 08 Javascript
vue element中axios下载文件(后端Python)
May 10 Javascript
微信小程序页面滚动到指定位置代码实例
Sep 07 Javascript
JS自定义滚动条效果
Mar 13 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
网友原创的PHP模板类代码
2008/09/07 PHP
关于PHP5 Session生命周期介绍
2010/03/02 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
关于实现代码语法标亮 dp.SyntaxHighlighter
2007/02/02 Javascript
javascript之典型高阶函数应用介绍
2013/01/10 Javascript
JavaScript数值数组排序示例分享
2014/05/27 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
vue.js中Vue-router 2.0基础实践教程
2017/05/08 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
javascript按顺序加载运行js方法
2017/12/01 Javascript
React 高阶组件入门介绍
2018/01/11 Javascript
Vue.js获取被选择的option的value和text值方法
2018/08/24 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
2019/01/31 Javascript
图文讲解vue的v-if使用方法
2019/02/11 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
javascript实现5秒倒计时并跳转功能
2019/06/20 Javascript
[36:19]2018DOTA2亚洲邀请赛 小组赛 A组加赛 Newbee vs LGD
2018/04/03 DOTA
替换python字典中的key值方法
2018/07/06 Python
使用python读取.text文件特定行的数据方法
2019/01/28 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
2020/01/21 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
享受加州生活方式的时尚舒适:XCVI
2018/07/09 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
校园之星获奖感言
2014/01/29 职场文书
餐饮收银员岗位职责
2014/02/07 职场文书
总经理工作职责范文
2014/03/14 职场文书
劳动竞赛活动总结
2014/05/05 职场文书
小学德育工作经验交流材料
2014/05/22 职场文书
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
2022/02/12 Servers