根据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 相关文章推荐
封装好的省市地区联动控件附下载
Aug 13 Javascript
javascript 常用代码技巧大收集
Feb 25 Javascript
用javascript作一个通用向导说明
Aug 30 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
Dec 18 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
Nov 22 Javascript
js+css实现select的美化效果
Mar 24 Javascript
js实现简单的网页换肤效果
Jan 18 Javascript
jQuery第一次运行页面默认触发点击事件的实例
Jan 10 jQuery
webpack4.x打包过程详解
Jul 18 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
Aug 29 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
Oct 16 Javascript
如何在 Vue 中使用 JSX
Feb 14 Vue.js
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 smarty 二级分类代码和模版循环例子
2011/06/01 PHP
PHP curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
javascript getElementsByTagName
2011/01/31 Javascript
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
Node.js抓取中文网页乱码问题和解决方法
2015/02/10 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
2015/03/18 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
微信小程序学习笔记之本地数据缓存功能详解
2019/03/29 Javascript
vue中使用mxgraph的方法实例代码详解
2019/05/17 Javascript
mock.js模拟前后台交互
2019/07/25 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
js页面加载后执行的几种方式小结
2020/01/30 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
[03:26]《DAC最前线》之EG经理自述DOTA2经历
2015/02/02 DOTA
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
30秒轻松实现TensorFlow物体检测
2018/03/14 Python
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
解决Pycharm出现的部分快捷键无效问题
2018/10/22 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
最新销售员个人自荐信
2013/09/21 职场文书
医院门卫岗位职责
2013/12/30 职场文书
法制宣传月活动总结
2014/04/29 职场文书
国旗下演讲稿
2014/05/08 职场文书
我爱家乡演讲稿
2014/09/12 职场文书
车贷收入证明范本
2014/09/14 职场文书
大学生实习证明范本
2014/09/19 职场文书
党员批评与自我批评
2014/10/15 职场文书
纪录片信仰观后感
2015/06/08 职场文书
2015迎新晚会开场白
2015/07/17 职场文书