嵌套HTML5 <template>标记

时间:2015-07-31 17:01:22

标签: javascript html json html5 html5-template

有没有办法嵌套HTML5&lt;模板&gt;彼此之间的标签?

寻找一种简单的方法来使用通用代码更新我的页面,这样每个页面都不需要大量的JS来运行。

例如以下代码:

<!DOCTYPE html>
<html>
<head>
    <title>Test Page</title>
</head>
<body>
    <a href="#" class="link">Load Template</a><br>

    <template id="profileview">
        <h1>Employee</h1>
        <template id="employeename">
            <div>
                <label for="FirstName">First Name:</label>
                <input type="text" name="FirstName" id="FirstName" value="">
            </div>
            <div>
                <label for="MiddleInitial">Middle Initial:</label>
                <input type="text" name="MiddleInitial" id="MiddleInitial" value="">
            </div>
            <div>
                <label for="LastName">Last Name:</label>
                <input type="text" name="LastName" id="LastName" value="">
            </div>
        </template>
    </template>
    <script src="/media/js/jquery/jquery-1.9.1.js"></script>
</body>

JS档案:

$('.link').click(function(event) {
  event.preventDefault();
  $.ajax({
    url: '/codes/html5/template.json.php',
    dataType: 'json'
}).done(function(result) {
var body = $('body');
    $.each(result.templates, function(i, t) {
  var template = document.querySelector('#'+t.name);

  if (t.subtemplates) {
    $.each(t.subtemplates, function(j, t2) {
     // subtemplate processing code here
    });
  }
  var clone = document.importNode(template.content, true);
  body.append(clone);
});
}); 

});

JSON文件:

{
"templates" : [
    {
        "name" : "profileview",
        "subtemplates" : [
            {
                "name" : "employeename"
            }
        ]
    }
]
}

1 个答案:

答案 0 :(得分:1)

  

有没有办法嵌套HTML5&lt;模板&gt;彼此之间的标签?

根据html5rocks,您可以嵌套<template>代码。