【问题标题】:Non-unique id of DOM elements in Handlebars templatesHandlebars 模板中 DO​​M 元素的非唯一 id
【发布时间】:2016-02-02 15:31:25
【问题描述】:

我想知道当每个模板都包含非唯一ID时,是否允许在同一个html页面上有多个Handlebars模板?根据具体情况一次只能编译一个模板并加载到 DOM 中。

或者换个说法,<script> 标签内的 html 元素是 DOM 树的一部分,并且还必须具有唯一的 id 值吗?

我的 html/Handlebars 有一个 sn-p(结尾),您可以看到两个模板,每个模板都包含带有 obj-id 的元素obj-name id 属性值。

<script id="task-details-template" type="text/x-handlebars-template">
    <div class="form-group">
        <label for="obj-name">Task name</label>
        <input type="text" id="obj-name">
    </div>
    <div class="form-group">
        <label for="obj-id">Task ID</label>
        <input type="text" id="obj-id">
    </div>
</script>

<script id="operator-details-template" type="text/x-handlebars-template">
    <div class="form-group">
        <label for="obj-name">Operator name</label>
        <input type="text" id="obj-name">
    </div>
    <div class="form-group">
        <label for="obj-id">Operator code</label>
        <input type="text" id="obj-id">
    </div>
    <div class="form-group">
        <label for="obj-age">Operator age</label>
        <input type="text" id="obj-age">
    </div>
</script>
</body>
</html>

【问题讨论】:

    标签: html templates dom handlebars.js uniqueidentifier


    【解决方案1】:

    要形成有效的 HTML5:

    The value must be unique amongst all the IDs in the element's home subtree and must contain at least one character. The value must not contain any space characters.

    也就是说,您的网站不会“崩溃”。您可以检查这个小提琴,看看该网站是否仍然有效:fiddle

    您可以改为声明一个更符合规范的通用类名,或者在需要时通过将对象绑定到模板来使用 Handlebars 填充 id 字段。例如:

    <input type="text" id="{{id-from-an-object-you-bind-to-the-template}}">
    

    【讨论】:

    • 谢谢你,马里奥。也许我的问题含糊不清,或者我不完全理解你的答案。如果具有非唯一 ID 的模板可以存在于同一个文档中,我会很感兴趣。现在我用一个简单的 javascript 测试了它。 &lt;script&gt;&lt;/script&gt; 标签之间的 html 元素似乎不参与文档对象模型。至少 DOM 方法 getElementByIdgetElementsByClassName 找不到它们。所以,我认为页面上可能存在具有非唯一 id 的模板。
    猜你喜欢
    • 1970-01-01
    • 2012-03-03
    • 2015-11-28
    • 2021-01-24
    • 2012-06-01
    • 2018-12-08
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    相关资源
    最近更新 更多