1

以下代码因控制台错误而失败Uncaught TypeError: node.setAttribute is not a function。如何更改从模板创建的节点的属性?

const template = document.createElement("template");
template.innerHTML = `<div>hello</div>`;
const node = template.content.cloneNode(true);
document.body.appendChild(node);
node.setAttribute("style", "background-color: green;")
4

1 回答 1

1

问题是克隆不返回div,它返回 a document-fragment,使用querySelector如下解决了这个问题。

const template = document.createElement("template");
template.innerHTML = `<div>supppp</div>`;
const node = template.content.cloneNode(true);
node.querySelector("div").setAttribute("style", "background-color: green;");
document.body.appendChild(node);

于 2020-02-04T20:22:52.567 回答