根据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 相关文章推荐
TBCompressor js代码压缩
Jan 05 Javascript
js判断生效时间不得大于失效时间的思路及代码
Apr 23 Javascript
JS修改iframe页面背景颜色的方法
Apr 01 Javascript
如何使用HTML5地理位置定位功能
Apr 27 Javascript
jQuery实现自动切换播放的经典滑动门效果
Sep 12 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
Apr 26 Javascript
JS给按钮添加跳转功能类似a标签
May 30 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
Jun 25 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
Jul 18 Javascript
基于DOM节点删除之empty和remove的区别(详解)
Sep 11 Javascript
微信小程序textarea层级过高的解决方法
Mar 04 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
Feb 08 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字符编码转换之gb2312转为utf8
2013/10/28 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
CentOS下PHP安装Oracle扩展
2015/02/15 PHP
PHP类的声明与实例化及构造方法与析构方法详解
2016/01/26 PHP
PHP缩略图生成和图片水印制作
2017/01/07 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
JS版网站风格切换实例代码
2008/10/06 Javascript
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
Jquery中Ajax 缓存带来的影响的解决方法
2011/05/19 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
2013/10/20 Javascript
简述JavaScript对传统文档对象模型的支持
2015/06/16 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
2015/08/26 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
AngularJS获取json数据的方法详解
2017/05/27 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
理解 JavaScript EventEmitter
2018/03/29 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
Python迭代用法实例教程
2014/09/08 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
基于Python开发chrome插件的方法分析
2018/07/07 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
我为自己代言广告词
2014/03/18 职场文书
无私奉献演讲稿
2014/09/04 职场文书
工作失职检讨书500字
2014/10/17 职场文书
设立有限责任公司出资协议书
2014/11/01 职场文书
薪资证明范本
2015/06/19 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书
在HTML5 localStorage中存储对象的示例代码
2021/04/21 Javascript
Python实现机器学习算法的分类
2021/06/03 Python