根据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 相关文章推荐
javascript中String类的subString()方法和slice()方法
May 24 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
Jul 31 Javascript
javascript编码的几个方法详细介绍
Jan 06 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
Apr 17 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
May 12 Javascript
JavaScript中日期函数的相关操作知识
Aug 03 Javascript
jQuery无刷新上传之uploadify简单代码
Jan 17 Javascript
vue之数据交互实例代码
Jun 20 Javascript
nginx配置React静态页面的方法教程
Nov 03 Javascript
基于javascript实现贪吃蛇小游戏
Nov 25 Javascript
vue中英文切换实例代码
Jan 21 Javascript
vue $router和$route的区别详解
Dec 02 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
2021年最新CPU天梯图
2021/03/04 数码科技
PHP 开源框架22个简单简介
2009/08/24 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
2013/06/26 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
2014/06/09 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
php使用GD实现颜色渐变实例
2015/06/02 PHP
PHP MySql增删改查的简单实例
2016/06/21 PHP
几行代码轻松搞定jquery实现flash8类似的连接效果
2007/05/03 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
通过location.replace禁止浏览器后退防止重复提交
2014/09/04 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
JS学习笔记之贪吃蛇小游戏demo实例详解
2019/05/29 Javascript
vue实现图片按比例缩放问题操作
2020/08/11 Javascript
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
django 开发忘记密码通过邮箱找回功能示例
2018/04/17 Python
对python打乱数据集中X,y标签对的方法详解
2018/12/14 Python
python 多线程串行和并行的实例
2019/02/22 Python
pytorch的batch normalize使用详解
2020/01/15 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
python基于win32api实现键盘输入
2020/12/09 Python
HTML实现代码雨源码及效果示例
2020/02/25 HTML / CSS
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
PHP面试题附答案
2015/11/28 面试题
会计师事务所审计实习自我鉴定
2013/09/20 职场文书
年会搞笑主持词
2014/03/27 职场文书
优秀中职教师事迹材料
2014/08/26 职场文书
公司领导班子对照检查材料
2014/09/24 职场文书
2015年个人工作总结报告
2015/04/25 职场文书
公司表扬稿范文
2015/05/05 职场文书
简历自我评价范文
2019/04/24 职场文书
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python
Golang实现可重入锁的示例代码
2022/05/25 Golang