【发布时间】:2015-06-02 00:39:36
【问题描述】:
问题:如何从#nameTagTemplate 模板中替换<content></content 的内容?
问题:目前我的 javascript 替换了所有模板元素。
HTML
<div class="todo">Hey I'm a todo app</div>
<template id="nameTagTemplate">
<style>
.outer {
border: 2px solid brown;
}
</style>
<div class="outer">
<div class="boilerplate">
Hi! My name is
</div>
<div class="name">
<content></content>
</div>
</div>
</template>
js 文件
var todoEl = document.querySelector('.todo');
var template = document.querySelector('#nameTagTemplate');
var clone = document.importNode(template.content, true);
var root = todoEl.createShadowRoot()
root.appendChild(clone);
root.textContent = 'Shellie'; // this line replaces all nodes in template.
// I would like root.textContent to just replace the content tag elements.
评论:更新仍然不起作用
// template logic goes here
var todoEl = document.querySelector('.todo');
var template = document.querySelector('#nameTagTemplate');
var clone = document.importNode(template.content, true);
clone.getElementsByTagName("content")[0].textContent='123';
var root = todoEl.createShadowRoot();
root.appendChild(clone);
【问题讨论】:
-
clone.getElementsByTagName("content")[0].textContent=123? -
抱歉,
标签很特殊,我忘了。任何其他标签名称都有效,例如:jsfiddle.net/kqj8640r 更多信息:developer.mozilla.org/en-US/docs/Web/HTML/Element/content
标签: javascript html shadow-dom