首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cloneNode对innerHTML

cloneNode对innerHTML
EN

Stack Overflow用户
提问于 2015-01-23 15:48:01
回答 1查看 1.5K关注 0票数 3

我试图使用Node.cloneNode()克隆一个标头中的模板,但没有成功。这是我的标记

代码语言:javascript
复制
var header = document.querySelector("header"),
$templateHeader = document.querySelector("[data-template=header]");

header.innerHTML = $templateHeader.innerHTML;
代码语言:javascript
复制
<header></header>

<!--templates-->
<template data-template=header>
  <div class=container>
    <menu class=row>
      <li><a>Home</a></li>
      <li><a>items</a></li>
      <li><a>Reseller</a></li>
      <li><a>Shop</a></li>
    </menu>
  </div>
</template>

这工作得很好

代码语言:javascript
复制
header.innerHTML = $templateHeader.innerHTML;

虽然这不管用

代码语言:javascript
复制
var header = document.querySelector("header"),
$templateHeader = document.querySelector("[data-template=header]");

header.innerHTML = $templateHeader.cloneNode(true);
代码语言:javascript
复制
<header></header>

<!--templates-->
<template data-template=header>
  <div class=container>
    <menu class=row>
      <li><a>Home</a></li>
      <li><a>items</a></li>
      <li><a>Reseller</a></li>
      <li><a>Shop</a></li>
    </menu>
  </div>
</template>

即使是这个

代码语言:javascript
复制
var header = document.querySelector("header"),
$templateHeader = document.querySelector("[data-template=header]");

header.appendChild($templateHeader.cloneNode(true));
代码语言:javascript
复制
<header></header>

<!--templates-->
<template data-template=header>
  <div class=container>
    <menu class=row>
      <li><a>Home</a></li>
      <li><a>items</a></li>
      <li><a>Reseller</a></li>
      <li><a>Shop</a></li>
    </menu>
  </div>
</template>

当我console.log,$templateHeader.cloneNode(true),这就是我得到的

有人能帮我理解我在这里做错了什么吗?

注释:我不想使用jquery

你好,坦博

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-23 16:08:31

您已经克隆了整个模板,并试图将该模板附加到您的标题中。您不想这样做,您希望附加模板的内容。

代码语言:javascript
复制
var header = document.querySelector("header"),
$templateHeader = document.querySelector("[data-template=header]");

header.appendChild($templateHeader.content.cloneNode(true));
代码语言:javascript
复制
<header></header>

<!--templates-->
<template data-template=header>
  <div class=container>
    <menu class=row>
      <li><a>Home</a></li>
      <li><a>items</a></li>
      <li><a>Reseller</a></li>
      <li><a>Shop</a></li>
    </menu>
  </div>
</template>

也就是说,在我在网上找到的一些样本中,我发现importNode代替了cloneNode

代码语言:javascript
复制
var clone = document.importNode(t.content, true);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28113577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档