javascript拼接html代码

经常做jsp开发的朋友可能遇到一个情况,显示列表数据不是table,而是div或者其他很多标签做的一种更漂亮的样式列表。如果采用ajax更新列表数据,可能有些朋友采用“html代码拼接”的方式,比如:"<a>"+json.name+"</a>"这样的方法。
下面我提供一个思路,可以不需要拼接html代码,并且适用任何复杂的列表。

代码说明:
1. 适用于ajax获取数据然后需要通过拼接html代码的方式实现数据列表展现的需求/功能
2. html模板最好有一个父元素, 因为最后clone的模板都是插入在父元素内部后面
3. 代码中最关键的部分当然是js的实现. 理解js部分主要是clone、each、append、replace这几个方法的理解和应用?
?1. [代码]html代码示例     
<div class="modal-body" >
<ul class="thumbnails" >
<!-- 
注意id=‘template‘ 
这里定义一个数据模板. id为template
然后里面需要显示值的地方用#key#的形式占位, 可以出现多次. key与json返回的对象的name保持一致.
刚开始编写模板的时候, 可以不设置 display: none; 方便查看模板样式.
测试的时候, 设置目标 display: none;
-->
<li class="span1" id=‘template‘ style=‘display: none;‘>
<a href="javascript:;" class="thumbnail">
<label for="#id#">
<img src="${pageContext.request.contextPath }/resource/image/#logo#" >
</label>
</a>
<p ><input id="#id#" type="checkbox" value="#id#" >#name#</p>
</li>
<!--
数据为空的时候显示的提醒信息. 不是必须.
需要的朋友主要是了解下javascript部分关键代码实现思路就可以了,
了解后随便怎么写都OK...
-->
<li class="span1" id=‘template_nodata‘ style=‘display: none;‘>
吖! 人呢? (没有可供选择的用户)
</li>
</ul>
</div>
2. [代码]js实现模板复制和数据填充     
function demo() {
$.post(‘${pageContext.request.contextPath}/demo/getData.htm‘, function(data) {
if(data.list.length > 0) {http://www.huiyi8.com/css3/?
var hasHandler = typeof(valHandler) == ‘function‘; // 是否有定义val额外处理的函数
var template = $(‘#template‘);

// 循环json格式对象
$.each(data.list, function(i, obj) {
// 克隆当前数据模板, 清除id, 设置显示
// jQuery也有removeAttr()方法可以清除id, 看个人习惯
// 之所以清除id, 是为了保持id的唯一性, 并且模板id不能重复
// clone(true)是把事件一起clone
var temp = template.clone(true).attr(‘id‘, ‘‘).show();
var html = temp.html(), regx; // 取模板里的html字符串; 定义正则变量
 
// obj为json中的对象; key对应json对象的属性, val就是json的val值
$.each(obj, function(key, val) {
if(hasHandler) {
// 对‘指定属性‘的value进行特殊处理, 如value为空需指定默认值
val = valHandler(key, val);
}

// 动态创建正则
// 例如:#name#/g 替换所有 #name#
regx = new RegExp(‘#‘+key+‘#‘, ‘g‘);
html = html.replace(regx, val || ‘‘); // 将占位符替换成实际值, 如果 val为null, 将原有的#name#占位符替换成‘‘
});css3动画

// temp.html(html)是把html字符有替换回去
// 然后追加到目标的父容器的后面
template.parent().append(temp.html(html));
}); // $.each
}
else {
$(‘#template_nodata‘).show();
}
}); // ajax获取数据
}

// valHandler必须定义, 
// 如果不定义, 上述代码var hasHandler = typeof(valHandler) == ‘function‘;部分会报错为定义对象
// 该函数的意义是针对需要二次处理的字段进行处理
function valHandler(key, val) {
if(key == ‘logo‘ && !val) {
// 如果logo为空, 路径改成默认logo路径
val = ‘defaultLogo.png‘;
}
return val;
}

javascript拼接html代码,布布扣,bubuko.com

时间: 2024-10-11 04:37:24

javascript拼接html代码的相关文章

ASP.NET中前台javascript与后台代码调用

ASP.NET中前台javascript与背景代码调用 1如安正在JavaScript访问C#函数? 2.如安正在JavaScript访问C#变量? 3.如安正在C#中访问JavaScript的已经有变量? 4.如安正在C#中访问JavaScript函数? 标题1谜底以下: javaScript函数中实施C#代码中的函数: 方法一:一.起首成立一个按钮,正在背景将调用或许搞定的内容写入button_click中; 二.正在前台写一个js函数,内容为document.getElementById(

javascript瀑布流代码实例

javascript瀑布流代码实例:现在瀑布流效果大行其道,各种网站都有应用,尤其是专业的图片类型的网站,本站在特效下载专区也有此应用,当然实现此效果的方法有多种,下面是一段瀑布流代码实例供大家参考. <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title&

js验证网址等Javascript常见验证代码合集

发一个利用js验证网址是否正确,email格式是否正确,是否为数字及数字的范围,密码或字符长度及是否相等及要求的最小字符串长度,输入是否为空等Javascript常见验证代码合集,用的上的朋友可以拿去了自行添加整理. 关键的JavaScript代码函数: 查看代码 打印 001 /** 002 * 数据验证框架.增加了对id字段检查出错时,直接在对应后面添加一< span>元素来显示错误信息. 003 * 004 * @author www.phpernote.com 005 * @versi

javascript简单计算器代码分析

javascript简单计算器代码分析:也许网页中需要一个简单的计算器功能,这个时候就要掌握如何编写,起码应该会修改,下面就通过一个简单的实例介绍一下如何实现简单的计算器效果,代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/&

Android之如何使用javascript调用android代码

使用javascript调用android代码 1.使用webview对象的addJavascriptInterface方法 2.addJavascriptInterface方法有两个参数,第一个参数就是我们一般会实现一个自己的类,类里面提供我们要提供给javascript访问的方法:第二个参数是访问我们在obj中声明的方法时候所用到的js对象,调用模式为window.interfaceName.方法名()或者是javascript: interfaceName.方法名() ;,如myWebVi

otepad++ 配置 支持jquery、html、css、javascript、php代码提示

官网下载:http://notepad-plus-plus.org/ 获取插件的方法:打开软件,窗口工具栏有有一个问号,点获取插件. 我使用的插件(安装方法都是官方的方法): QuickText.v0.2.1.zip      //自定义缩写词,按快捷键后输出 定义的代码段   使用方法:http://immmmm.com/quicktext-for-notepad.html 安装方法: Just copy the QuickText.dll into Notepad++'s plugin di

第二种JavaScript放烟花代码爆炸出图形

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

Notepad++ 配置 支持jquery、html、css、javascript、php代码提示

原文:Notepad++ 配置 支持jquery.html.css.javascript.php代码提示 官网下载:http://notepad-plus-plus.org/ 获取插件的方法:打开软件,窗口工具栏有有一个问号,点获取插件. 我使用的插件(安装方法都是官方的方法): QuickText.v0.2.1.zip      //自定义缩写词,按快捷键后输出 定义的代码段   使用方法:http://immmmm.com/quicktext-for-notepad.html 安装方法: J

如何在devtools中找到未使用 JavaScript 和 CSS 代码

GitHub中有更加详细的介绍 https://github.com/daLeiStrive/devtools-docs Chrome DevTools中的Coverage标签可帮助您查找未使用的JavaScript和CSS代码.删除未使用的代码可以加快页面加载速度, 图1.分析代码覆盖率. 总览 运送未使用的JavaScript或CSS是Web开发中的常见问题.例如,假设您要在页面上使用Bootstrap的按钮组件.要使用按钮组件,您需要在HTML中添加指向Bootstrap样式表的链接,如下