javascript
  • html
  • json
  • dom
  • template-engine
  • 2010-05-25 74 views 0 likes 
    0

    我要尋找的JavaScript庫,它可以這樣做JavaScript的HTML對象模型和模板引擎

    var items = [1,2]; 
    var html = div(
    ul({id:"some-id", class:"some-class"})(items.each(function(item){ 
    return li(item); 
    }) 
    ); 
    
    html == "<div><ul id='some-id' class='some-class'><li >1</li><li>2</li></ul></div>" 
    
    +2

    你在說什麼*地獄? :) – 2010-05-25 10:36:14

    +0

    我認爲他希望某種用JavaScript編寫的模板引擎,其語法類似於第一個段,以生成類似於第二個段的HTML。 – 2010-05-25 10:37:24

    +0

    你想要一個模板引擎嗎?當我們不清楚你要求什麼時,很難回答。 – 2010-05-25 11:35:04

    回答

    0

    所以,我把它寫我自己。 http://jshtmlbuilder.codeplex.com/

    1

    看一看道格拉斯Crockford的supplant()方法:

    param = {domain: 'valvion.com', media: 'http://media.valvion.com/'}; 
    url = "{media}logo.gif".supplant(param); 
    
    1

    如果你想使用jQuery

    var $ul = $('<ul />',{ 
        "class":" some-class", 
        "id": "some-id" 
    }); 
    $.each(items,function(index,value) { 
        $('<li />').text(value).appendTo($ul); 
    }); 
    $ul.appendTo($('body')) 
    

    雖然在這種情況下,你可以在純javascrip噸太:

    var ul = document.createElement('ul'); 
        ul.setAttribute('id', 'some-id'); 
        ul.setAttribute('class','some-class'); 
    for(var i in items) 
    { 
        var li = document.createElement('li'); 
         li.innerText = items[i]; 
        ul.appendChild(li); 
    } 
    document.body.appendChild(ul) 
    
    0

    約翰resig有一個偉大的template系統。他用來說明其能力的例子正是你想要做的。

    您可以使用腳本語法如下創建輸出你想要的:

    <script type="text/html" id="user_tmpl"> 
        <% for (var i = 0; i < users.length; i++) { %> 
        <li><a href="<%=users[i].url%>"><%=users[i].name%></a></li> 
        <% } %> 
    </script> 
    

    並通過以下調用給它的數據在javascript:

    var results = document.getElementById("results"); 
    results.innerHTML = tmpl("item_tmpl", dataObject); 
    
    相關問題