国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

淺談javascript中自定義模版

2019-11-20 13:17:54
字體:
來源:轉載
供稿:網友
/** * 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(/(>)|(<)/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);

執行結果:

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);

結果:

以上就是本文的全部內容了,小伙伴們看完是否對javascript模板有了新的認識了呢,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 温泉县| 松江区| 秦安县| 金华市| 镇康县| 遵义市| 图们市| 普格县| 南郑县| 富平县| 安宁市| 小金县| 商南县| 临泉县| 安乡县| 沂源县| 南京市| 兰考县| 台安县| 曲松县| 铜陵市| 保亭| 萨嘎县| 华阴市| 通江县| 新和县| 清徐县| 南皮县| 海城市| 喀喇| 太康县| 彭泽县| 双桥区| 化州市| 仙居县| 乡城县| 大同市| 自治县| 邮箱| 藁城市| 尚义县|