/**
* Created by Administrator on 15-1-19.
*/
function functionUtil() { } functionUtil = {
//某个DOM节点是否有某个属性
hasAttr: function (el, name) {
var attr = el.getAttributeNode && el.getAttributeNode(name);
return attr ? attr.specified : false
},
//根据class获取元素
getByClass: function (sClass, oParent) {
oParent = oParent || document;
if (!oParent.getElementsByClassName) {
return oParent.getElementsByClassName(sClass);
}
var arr = [];
var aEle = oParent.getElementsByTagName('*');
var reg = new RegExp('(^|\\s)' + sClass + '(\\s|$)');
//var reg = new RegExp('(^|[\\x20\\t\\r\\n\\f])' + sClass + '([\\x20\\t\\r\\n\\f]|$)');
for (var i = 0; i < aEle.length; i++) {
if (reg.test(aEle[i].className)) {
arr.push(aEle[i]);
}
}
return arr;
},
//动态添加样式表
addSheetFile: function (path) {
var fileref = document.createElement("link")
fileref.rel = "stylesheet";
fileref.type = "text/css";
fileref.href = path;
fileref.media = "screen";
var headobj = document.getElementsByTagName('head')[0];
headobj.appendChild(fileref);
},
//根据指定格式如 ${name} 绑定json数据
LoadJsonData: function (sParent, oJson) {
var oParent = document.getElementById(sParent);
if (oJson instanceof Array) {
var str = oParent.innerHTML;
for (var i = 0; i < oJson.length - 1; i++) {
oParent.innerHTML += str;
}
for (var d in oJson) {
oParent.children[d].innerHTML = oParent.children[d].innerHTML.replace(/\$\{(\w+)\}/g, function (str, $1) {
return oJson[d][$1] ? oJson[d][$1] : '';
});
} } else {
oParent.innerHTML = oParent.innerHTML.replace(/\$\{(\w+)\}/g, function (str, $1) {
return oJson[$1] ? oJson[$1] : '';
});
}
},
//根据指定格式如<%……%>绑定json数据
TemplateEngine: function (html, options) {
html = html.replace(/(&gt;)|(&lt;)/g, function (str, $1, $2) {
switch (str) {
case $1:
return '>';
case $2:
return '<';
}
});
var re = /<%([^%>]+)?%>/g, reExp = /(^( )?(if|for|else|switch|case|break|{|}))(.*)?/g, code = 'var r=[];\n', cursor = 0;
var add = function (line, js) {
js ? (code += line.match(reExp) ? line + '\n' : 'r.push(' + line + ');\n') :
(code += line != '' ? 'r.push("' + line.replace(/"/g, '\\"') + '");\n' : '');
return add;
}
while (match = re.exec(html)) {
add(html.slice(cursor, match.index))(match[1], true);
cursor = match.index + match[0].length;
}
add(html.substr(cursor, html.length - cursor));
code += 'return r.join("");';
return new Function(code.replace(/[\r\t\n]/g, '')).apply(options);
}
}

1、第一种方式:${key}

functionUtil.LoadJsonData(element, data);

”html“代码:

 <div id="data">
<div class="item">
姓名:${name}<br/>
年龄:${age}<br/>
职业:${job}<br/><br/>
</div>
</div>

javascript代码:

 var data = [
{
name: '徐磊',
age: 24,
job: 'IT'
},
{
name: '李磊',
age: 23,
job: '翻译'
}
]; functionUtil.LoadJsonData('data', data);

执行结果:

aaarticlea/png;base64,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" alt="" />

2、第二种方式<% 代码 %>

functionUtil.TemplateEngine(string,Object);

"html"代码:

 <div id="test3">
<%if(this.isShow){
for(var i in this.data){%>
<p href="#">姓名:<%this.data[i].name%></p> <p href="#">年龄:<%this.data[i].age%></p> <p href="#">工作:<%this.data[i].job%></p>
<br/>
<%}}%>
</div>

javascript代码:

 var person = {
data: [
{
name: '徐磊',
age: 24,
job: 'IT'
},
{
name: '李磊',
age: 23,
job: '翻译'
}
],
isShow: true
} document.getElementById("test3").innerHTML = functionUtil.TemplateEngine(document.getElementById("test3").innerHTML, person);

结果:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYIAAADuCAIAAAC72ZdLAAAH8klEQVR4nO3dy5LiuAJF0fz/n+aOmuBaT9syx6bWGlSQlB/qgXZIUJ3+ewFE/aUHAPzrZAgIkyEgTIaAMBkCwioZ+vurt6n1/vwBh5VXvu5ewJfVM1Sd5NkMbS7eaeWMi8YJHDDOzfvHmQxdMedbS6FgFoGFlmXo2AJqqL8d62TOOgieYlucctLOzOerG9RJYTmeTnFkCG6oN1c3e5/OuqM8YO2E72RxM4D+aGUIbmiQoWFZqsuiKxrUv2/rLJsyuL/BJy+tv+pd8foGzdzFagieopmhwwuQVSN7FWur1gKnf0DnfeAOmkuG4dzenDJsxObgHUPcv645cAqQsuMfTHfq0zqlc9aOIdb2iZ2bzo8EuIPxamjzfvNCl03+TYaqi7XN8eVazI4Mbmv8hX35fv1C16+GqsuizQU3F383q3UuELfsm7KrPxvqDKazU6vuGWUIbmUQml1xqd9g9f/PUa1SZ8ydN4E7eMCEnE9e+bfDDR0QZ0ICYTIEhMkQECZDQJgMAWEyBITJEBAmQ0CYDAFhMgSEyRAQJkNAmAwBYTIEhMkQECZDQJgMAWEyBIT1fqPzvgvtf8orwKufofnfh/+SIeCoqcdp9B+D8X5RPglj0SCBX7YyQ+X7S0o0fLCP3sGjnd1eDZ/Ac7IRwyBadsHTNYsz88FQ54DysIPj62Zo4ZoLSBk/kfl1dJ639mvHLtIZlQzBo019YT/clA23Zku0kiRD8GiXZKizjzs11ms+fgKyLlwNdd45EI6Z3RnwRNu5Pe/zlFfj0+JqIA5kqNWy5Qsu4PumZu9wNfR+XebpvOF1NAgebVmGylVJ66xdhZpcXk1eDbihBRnaLIKGJ+7NUGfzZVMGP+Bshi46Efh3XJshgCF9AcJkCAiTISBMhoAwGQLCZAgIkyEgTIaAMBkCwmQICJMhIEyGgDAZAsJkCAiTISBMhoAwGQLCZAgIW5ahmWdyAJSaT87oa531fn3tqIEfMu7FZFM0CDhmTYbKhybOLKCmxle7yMLrA3HrMzR5yi7lUxJbL4DHWZCh92KkGoUlgWhdRH3gB5zNUHX5s3zHJEPww05lqLUnunpTdt2NgO9b/NnQ/Cm7yBD8sG9kqLplmxveYAwyBD/gqgx1Ph6SIeCTTRkQFsiQ1RDwabyZatmc2Plxe8s9Gerf9EDRgLtZM4ev3pQBP0yGgDC9AMJkCAiTISBMhoAwGQLCZAgIkyEgTIaAMBkCwmQICJMhIEyGgDAZAsJkCAiTISBMhoAwGQLCZAgIkyEgTIaAMBkCwmQICJMhIEyGgDAZAsJkCAiTISBMhoAwGQLCZAgIkyEgTIaAMBkCwmQICJMhIEyGgDAZAsJkCAiTISBMhoAwGQLCZAgIkyEgTIaAMBkCwmQICJMhIEyGgDAZAsJkCAiTISBMhoCwSob+/uptar0/f8AS37kL8DX1DFWn+iMy9DfnC+MEJo1z8/5xJkPL5/yZrMgNPMKyDB1bQO01nzbrIHiKbXHKSTszn7/WoM2frcNaxZEhuKHeXN1M+OHe5/OAixq0eVHWsD9aGYIbGmRoWJbqsmjtbO8Po7X2sSmDp6jM3urr8sfmFddN9cmN4fzCR4bghpoZqq4vBtf61nKjsz2spsqyCO6suWTYbM36c7i1WukcfHzEc1+THTsR+L4d/+KmU5/WKZ2zZsc3rT/4zvtA1ng1tHm/eaFvTf7hBat56i/QgKDxF/bl+/ULXbMamr9R9eLvpM4sl4CIZd+UzWyXPo88PuLuP1x8Ff8J1TcP3x1YbhCaXXGp32Dp9/czF7Qpg2d52IScKUh14WM1BLdlQgJhMgSEyRAQJkNAmAwBYTIEhMkQECZDQJgMAWEyBITJEBAmQ0CYDAFhMgSEyRAQJkNAmAwBYTIEhA1+vfyOC+1/yivAq5+h+d+H/5Ih4Kipx2kMn8nz+v8nuL5/XDRI4JetzFD5/pIStVZhHvgDv+Hs9mr4BJ6TjWgFcT6UwM01izPzwVDngPKwg+OTIfh1zcl8fkXTSsaxi3QupUHwaFNf2A83ZcOt2RLV3aIGwdNdkqHOPu7UWBvXUSJ4tAtXQ513DoSjf4oSwXM1vwIf+jzl1fiGvvVRzt5qDI+XIXiuqdk7XA29X5d5Om/mY2kZgudalqHyY6DORznz1Wjl5tLPwoFvWpChzSJoeOLeDFU3g+WtgYc6m6GLTgT+HddmCGBIX4AwGQLCZAgIkyEgTIaAMBkCwmQICJMhIEyGgDAZAsJkCAiTISBMhoAwGQLCZAgIkyEgTIaAMBkCwpZl6OpHZfgF+PCrmk/OmHlWYnnW+/WawXUfyFEdUvlokJnBA0HjOTk5b5c36PNq1YvPvB7+CMStydBnJuYXULND/O/0TlDK5VJreIeHAVxkfYYmT5kx3H8NV0mbSy0ZFbDWggyVq5VhFHYp11Oft5sJn9UQ3NnZDLW2Swt3ZOVdyh/f75TBqh6sR3AfpzLUWmUs3JR1btR/XV1ArR0esMTiz4bmT5kx/8FQpzgLl2bAFb6RoeqWbWpwjdVQ68/OgNUHbuuqDHXWICcz1HrdH7AMwW09dVP2aqfnvT7qWzJC4LxAhs5vymZeX1RGYLnxZmpmNXG3DJXXlyG4rcXfrFd/PHPZav5af3buLkNwW7fO0OQdD2wbgfswOYEwGQLCZAgIkyEgTIaAMBkCwmQICJMhIEyGgDAZAsJkCAiTISDsf5jiolj+nD65AAAAAElFTkSuQmCC" alt="" />

javascript——浅谈javascript模版(自定义)的更多相关文章

  1. 浅谈javascript的原型及原型链

    浅谈javascript的原型及原型链 这里,我们列出原型的几个概念,如下: prototype属性 [[prototype]] __proto__ prototype属性 只要创建了一个函数,就会为 ...

  2. 浅谈javascript函数节流

    浅谈javascript函数节流 什么是函数节流? 函数节流简单的来说就是不想让该函数在很短的时间内连续被调用,比如我们最常见的是窗口缩放的时候,经常会执行一些其他的操作函数,比如发一个ajax请求等 ...

  3. 浅谈JavaScript中的闭包

    浅谈JavaScript中的闭包 在JavaScript中,闭包是指这样一个函数:它有权访问另一个函数作用域中的变量. 创建一个闭包的常用的方式:在一个函数内部创建另一个函数. 比如: functio ...

  4. 浅谈JavaScript浮点数及其运算

    原文:浅谈JavaScript浮点数及其运算     JavaScript 只有一种数字类型 Number,而且在Javascript中所有的数字都是以IEEE-754标准格式表示的.浮点数的精度问题 ...

  5. 浅谈 JavaScript 编程语言的编码规范

    对于熟悉 C/C++ 或 Java 语言的工程师来说,JavaScript 显得灵活,简单易懂,对代码的格式的要求也相对松散.很容易学习,并运用到自己的代码中.也正因为这样,JavaScript 的编 ...

  6. 浅谈JavaScript中的null和undefined

    浅谈JavaScript中的null和undefined null null是JavaScript中的关键字,表示一个特殊值,常用来描述"空值". 对null进行typeof类型运 ...

  7. 浅谈JavaScript中的正则表达式(适用初学者观看)

    浅谈JavaScript中的正则表达式 1.什么是正则表达式(RegExp)? 官方定义: 正则表达式是一种特殊的字符串模式,用于匹配一组字符串,就好比用模具做产品,而正则就是这个模具,定义一种规则去 ...

  8. [转载]浅谈JavaScript函数重载

     原文地址:浅谈JavaScript函数重载 作者:ChessZhang 上个星期四下午,接到了网易的视频面试(前端实习生第二轮技术面试).面了一个多小时,自我感觉面试得很糟糕的,因为问到的很多问题都 ...

  9. 浅谈JavaScript中的内存管理

    一门语言的内存存储方式是我们学习他必须要了解的,接下来让我浅谈一下自己对他的认识. 首先说,JavaScript中的变量包含两种两种类型: 1)值类型或基本类型:undefined.null.numb ...

随机推荐

  1. php-Mysql示例1

  2. HDOJ(HDU) 2524 矩形A + B(推导公式、)

    Problem Description 给你一个高为n ,宽为m列的网格,计算出这个网格中有多少个矩形,下图为高为2,宽为4的网格. Input 第一行输入一个t, 表示有t组数据,然后每行输入n,m ...

  3. 工作总结之动画与VR

    一.Unity5的动画新特性: 1.animator controller默认就包含Any State.Entry.Exit三个状态 2.animator可以给每个动画片段添加脚本,该脚本继承 Sta ...

  4. (转)java多线程的一篇好文

    云转型基石ThinkServer特性解析 2013-05-29 10:47 佚名 importnew 字号:T | T 本文只是一些针对初学者或者新手的问题,如果你已经具备良好的基础,那么你可以跳过本 ...

  5. 把mysql 中的字符gb2312 改为gbk的方法

    第一步:查找mysql的字符: mysql> show variables like '%char%';+--------------------------+----------------- ...

  6. C++Primer第5版学习笔记(三)

    C++Primer第5版学习笔记(三) 第四/五章的重难点内容           你可以点击这里回顾第三章内容       因为第五章的内容比较少,因此和第四章的笔记内容合并.       第四章是 ...

  7. An Easy Problem?! - POJ 2826(求面积)

    题目大意:有两块木板交叉起来接雨水,问最多能接多少.   分析:题目描述很简单,不过有些细节还是需要注意到,如下图几种情况:   #include<stdio.h> #include< ...

  8. Java 23种设计模式详尽分析与实例解析之二--结构型模式

    Java设计模式 结构型模式 适配器模式 模式动机:在软件开发中采用类似于电源适配器的设计和编码技巧被称为适配器模式.通常情况下,客户端可以通过目标类的接口访问它所提供的服务.又是,现有的类可以满足客 ...

  9. 两层Fragment嵌套,外层Fragment切换时内层Fragment不显示内容

    尊重他人劳动成果,转载请说明出处:http://blog.csdn.net/bingospunky/article/details/46847269 需求 在搭界面有这么样一个需求:须要两层的Frag ...

  10. linux下mysql配置文件my.cnf详解

    basedir = path 使用给定目录作为根目录(安装目录). character-sets-dir = path 给出存放着字符集的目录. datadir = path 从给定目录读取数据库文件 ...