根据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 弹出登录窗口实现代码
Dec 24 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
Mar 18 Javascript
JQuery分屏指示器图片轮换效果实例
May 21 Javascript
Javascript闭包实例详解
Nov 29 Javascript
jquery分隔Url的param方法(推荐)
May 25 Javascript
微信小程序开发一键登录 获取session_key和openid实例
Nov 23 Javascript
angularjs实现的前端分页控件示例
Feb 10 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
Jul 21 Javascript
浅谈angular.copy() 深拷贝
Sep 14 Javascript
浅谈express.js框架中间件(middleware)
Apr 07 Javascript
Javascript原生ajax请求代码实例
Feb 20 Javascript
5个实用的JavaScript新特性
Jun 16 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设计模式 Delegation(委托模式)
2011/06/26 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
比较全的JS checkbox全选、取消全选、删除功能代码
2008/12/19 Javascript
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
实现51Map地图接口(示例代码)
2013/11/22 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
vue组件实例解析
2017/01/10 Javascript
详解NodeJS框架express的路径映射(路由)功能及控制
2017/03/24 NodeJs
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
angular中ui calendar的一些使用心得(推荐)
2017/11/03 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
实例讲解vue源码架构
2019/01/24 Javascript
解决Python 遍历字典时删除元素报异常的问题
2016/09/11 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
python3.x上post发送json数据
2018/03/04 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
python如何统计代码运行的时长
2019/07/24 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
python+opencv实现车道线检测
2021/02/19 Python
里程积分管理买卖交换平台:Points.com
2017/01/13 全球购物
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
上课迟到检讨书100字
2014/01/11 职场文书
党的群众路线对照检查材料
2014/08/27 职场文书
大学辅导员述职报告
2015/01/10 职场文书
民政工作个人总结
2015/02/28 职场文书
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python