javascript
  • html
  • json
  • dom
  • template-engine
  • 2010-05-25 75 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); 
    
    相关问题