javascript簡單模板引擎介紹
當前網站為了開發效率等因素,通常採用模板的方式。
本章節就通過程式碼例項簡單介紹一下模板的實現原理,當然這裡的模板是非常的簡單的,和jQuery tmpl或者handlebarsjs等相比較不值得一提,但是我們們這裡只是學習實現原理,來開闊一下視野和思路。
一.定義模板:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> </head> <body> <div class="result"></div> <script type="template" id="template"> <h2> <a href="{{href}}"> {{title}} </a> </h2> <img src="{{imgSrc}}" alt="{{title}}"> </script> </body> </html>
在實際應用中都是要通過ajax等方式從後臺獲取資料,這裡我們為了方便演示,就將資料放在本地:
[JavaScript] 純文字檢視 複製程式碼var data=[ { title:"螞蟻部落一", href:"softwhy.com/a", imgSrc:"image/a.jpg" }, { title:"螞蟻部落二", href:"softwhy.com/b", imgSrc:"image/b.jpg" }, { title:"螞蟻部落三", href:"softwhy.com/c", imgSrc:"image/c.jpg" } ]
我們只要把模板中的相應部分替換為資料就可以了。
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script type="template" id="template"> <h2> <a href="{{href}}"> {{title}} </a> </h2> <img src="{{imgSrc}}" alt="{{title}}"> </script> </head> <body> <div class="result"></div> <script> var data=[ { title:"螞蟻部落一", href:"softwhy.com/a", imgSrc:"image/a.jpg" }, { title:"螞蟻部落二", href:"softwhy.com/b", imgSrc:"image/b.jpg" }, { title:"螞蟻部落三", href:"softwhy.com/c", imgSrc:"image/c.jpg" } ]; var template=document.querySelector('#template').innerHTML result=document.querySelector('.result'), index=0,len=data.length, fragment=''; for(;index<len;index++){ fragment += template .replace( /\{\{title\}\}/,data[index].title) .replace( /\{\{href\}\}/,data[index].href) .replace( /\{\{imgSrc\}\}/,data[index].imgSrc); } result.innerHTML=fragment; </script> </body> </html>
上面的程式碼實現了一定的替換功能,程式碼有沒有發現有個問題,那就是圖片中的title並沒有被替換到,因為這裡的正規表示式並沒有採用全域性匹配,只要將對應的程式碼修改如下即可:
[JavaScript] 純文字檢視 複製程式碼for(;index<len;index++){ fragment += template .replace( /\{\{title\}\}/g,data[index].title) .replace( /\{\{href\}\}/g,data[index].href) .replace( /\{\{imgSrc\}\}/g,data[index].imgSrc); }
相關文章
- JavaScript 簡單介紹JavaScript
- 簡單介紹克隆 JavaScriptJavaScript
- javascript物件簡單介紹JavaScript物件
- javascript this指向簡單介紹JavaScript
- javascript加密簡單介紹JavaScript加密
- 編寫一個簡單的JavaScript模板引擎JavaScript
- 簡單介紹JavaScript閉包JavaScript
- JavaScript希爾排序簡單介紹JavaScript排序
- javascript constructor簡單介紹JavaScriptStruct
- javascript建立物件簡單介紹JavaScript物件
- javascript的this用法簡單介紹JavaScript
- javascript arguments用法簡單介紹JavaScript
- javascript 變數簡單介紹JavaScript變數
- javascript作用域簡單介紹JavaScript
- JavaScript return語句簡單介紹JavaScript
- javascript鏈式呼叫簡單介紹JavaScript
- javascript除法運算簡單介紹JavaScript
- javascript &&和||運算子簡單介紹JavaScript
- javascript方法過載簡單介紹JavaScript
- javascript遞迴概念簡單介紹JavaScript遞迴
- JavaScript this指向解綁簡單介紹JavaScript
- javascript陣列操作簡單介紹JavaScript陣列
- javascript with()語句用法簡單介紹JavaScript
- javascript匿名函式簡單介紹JavaScript函式
- javascript的in運算子簡單介紹JavaScript
- javascript變數宣告簡單介紹JavaScript變數
- javascript氣泡排序簡單介紹JavaScript排序
- 如何學習javascript簡單介紹JavaScript
- javascript生命週期簡單介紹JavaScript
- javascript變數汙染簡單介紹JavaScript變數
- javascript AMD規範簡單介紹JavaScript
- javascript如何操作iframe簡單介紹JavaScript
- JavaScript 引擎和 Just-in-Time 編譯概念,Hot Function 的簡單介紹JavaScript編譯Function
- javascript求餘運算簡單介紹JavaScript
- javascript取模運算簡單介紹JavaScript
- javascript關聯陣列簡單介紹JavaScript陣列
- javascript Object型別物件簡單介紹JavaScriptObject型別物件
- javascript記憶體管理簡單介紹JavaScript記憶體