簡單的模板引擎

1.字符串的拼接

  • 舉例:
let songs = [
    {name: '剛剛好1',singer: '薛之謙1'},
    {name: '剛剛好2',singer: '薛之謙2'},
    {name: '剛剛好3',singer: '薛之謙3'},
    {name: '剛剛好4',singer: '薛之謙4'},
    {name: '剛剛好5',singer: '薛之謙5'}
]
let html = '<div class="ct">'
html += '<h1>熱歌榜</h1><ul>'

let i
for(i = 0;i < songs.length;i++){
    html += '<li>'+ songs[i].name +' - '+ songs[i].singer +'</li>'
}
html += '</ul></div>'

document.body.innerHTML = html

2. jQuery方式 構(gòu)建 DOM 對象

let songs = [
    {name: '剛剛好1',singer: '薛之謙1'},
    {name: '剛剛好2',singer: '薛之謙2'},
    {name: '剛剛好3',singer: '薛之謙3'},
    {name: '剛剛好4',singer: '薛之謙4'},
    {name: '剛剛好5',singer: '薛之謙5'}
]
let $div = $('<div class="ct"></div>')
let $ul = $('<ul></ul>')

$(songs).each((index,item) => {
    let $li = $('<li>'+ item.name +'-'+ item.singer +'</li>')
    $ul.append($li)
})

$div.append('<h1>熱歌榜</h1>')
$div.append($ul)
$('body').append($div)

3. string formate

let songs = [
    {name: '剛剛好1',singer: '薛之謙1'},
    {name: '剛剛好2',singer: '薛之謙2'},
    {name: '剛剛好3',singer: '薛之謙3'},
    {name: '剛剛好4',singer: '薛之謙4'},
    {name: '剛剛好5',singer: '薛之謙5'}
]

function stringFormat (string) {
    // console.log(arguments)  // ["hi,{0}", "tian", callee: ?, Symbol(Symbol.iterator): ?]
    // 拿到arguments 除了第一項的其他項
    let parmas = [].slice.call(arguments,1)
    console.log(parmas) // ["tian", "yang"]

    // 將 string 中的 {n} 替換成 parmas{n}
    let regex = /\{(\d+)\}/g // 正則匹配 {n}
    string = string.replace(regex,function () {
        console.log(arguments)
        // 拿到 n 的下標
        let index = arguments[1]
        // 根據(jù)下標找到parmas里面的項
        return parmas[index]
    })

    return string
}


console.log(stringFormat('hi,{0} and {1}', 'tian','yang')) // 替換結(jié)果:hi,tian and yang
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容