Javascript 创建一个与我拥有的元素类似的元素(包括内容和样式)

Javascript 创建一个与我拥有的元素类似的元素(包括内容和样式),javascript,html,dom,Javascript,Html,Dom,我有'DIV'元素,当我点击按钮时,我希望在页面上得到相同的'DIV'(包括内容、样式和它所具有的图像) 这就是我尝试的代码: HTML: 这个代码不起作用。 谁能解释一下我的错误在哪里? (我是编程的绝对初学者)您的思路是正确的,但只需要做一些小的更改。代码应该是这样的 let task = document.querySelector('#taskId'); const newTask = task.cloneNode(true); document.appendChild(newTask)

我有'DIV'元素,当我点击按钮时,我希望在页面上得到相同的'DIV'(包括内容、样式和它所具有的图像)

这就是我尝试的代码:

HTML:

这个代码不起作用。 谁能解释一下我的错误在哪里?
(我是编程的绝对初学者)

您的思路是正确的,但只需要做一些小的更改。代码应该是这样的

let task = document.querySelector('#taskId');
const newTask = task.cloneNode(true);
document.appendChild(newTask);

在这里,您将创建一个新节点,该节点将对原始节点进行完全建模,包括样式和数据

您的思路是正确的,但只需要做一些小的更改。代码应该是这样的

let task = document.querySelector('#taskId');
const newTask = task.cloneNode(true);
document.appendChild(newTask);

在这里,您将创建一个新节点,该节点将对原始节点进行完全建模,包括样式和数据

您必须使用“createElement”创建一个“div”。您可以使用下面的代码进行一些调整

let button=document.querySelector(“#按钮”);
按钮。addEventListener('单击',()=>{
task=document.querySelector(“#taskId”);
让newTask=document.createElement('div');
newTask.innerHTML='任务将写入此处

' task.appendChild(newTask); })

任务将写在这里


添加项
必须使用“createElement”创建一个“div”。您可以使用下面的代码进行一些调整

let button=document.querySelector(“#按钮”);
按钮。addEventListener('单击',()=>{
task=document.querySelector(“#taskId”);
让newTask=document.createElement('div');
newTask.innerHTML='任务将写入此处

' task.appendChild(newTask); })

任务将写在这里


添加项
出了什么问题?“与元素类似”,还是完全复制?请小心,您使用的是
id
s,它们在DOM中必须是唯一的。如果复制该div,您将有两个
id=“taskId”
和两个
id=“taskwrited”
可能您应该为这些div使用类,而不是
id
。。。这是一个taskId,而不是(唯一的)taskId,可能类似于
文档。createElement()
需要一个字符串(标记名)而不是DOM对象,那么我应该使用什么呢?任何反馈都会帮助我“我应该使用什么?”——请参阅Chaim Friedman的答案,这是正确的方法™ 要这样做。出什么问题了?“类似于”元素,还是一个精确的克隆?请小心,您使用的是
id
s,它们在DOM中必须是唯一的。如果复制该div,您将有两个
id=“taskId”
和两个
id=“taskwrited”
可能您应该为这些div使用类,而不是
id
。。。这是一个taskId,而不是(唯一的)taskId,可能类似于
文档。createElement()
需要一个字符串(标记名)而不是DOM对象,那么我应该使用什么呢?任何反馈都会帮助我“我应该使用什么?”——请参阅Chaim Friedman的答案,这是正确的方法™ 是的,upvote,但是OP@Chani和其他读者应该知道新克隆的元素将有重复的
id
名称,这是无效的。请参阅MDN文档中的注释“警告:cloneNode()可能导致文档中的元素ID重复!”这是一个很好的观点。理想情况下,此处应该使用一个id。是的,upvote,但是OP@Chani和其他读者应该知道,新克隆的元素将具有重复的
id
名称,这是无效的。请参阅MDN文档中的注释“警告:cloneNode()可能导致文档中的元素ID重复!”这是一个很好的观点。理想情况下,这里应该使用一个id。
let task = document.querySelector('#taskId');
const newTask = task.cloneNode(true);
document.appendChild(newTask);