如何编辑模板克隆对象的样式? / 将来会创建的对象?

问题描述 投票:0回答:1
document.addEventListener("DOMContentLoaded", ()=>{
    let template = document.querySelector(".template");
    let button = document.querySelector(".button");
    let screen = document.querySelector(".screen");
    button.addEventListener("click", ()=>{
    let template_clone = template.content.cloneNode(true);
    template_clone.style.background = "red";
    screen.appendChild(template_clone)
})})

我需要将一个对象添加到屏幕上,该对象是模板克隆并编辑其样式

<body>
    <button class="send">send</button>
    <div class="screen">
        <template class="template">
        <div class="box1"></div>
    </template>
    </div>       
</body>

如果我尝试编辑 template_clone.style 样式,则会导致错误

undefined is not an object (evaluating 'template_clone.style.background = "red"')
javascript html
1个回答
0
投票

发生错误的原因是

template.content.cloneNode(true)
克隆了模板的全部内容,在本例中包括
div.box1
等元素。
template_clone
是一个文档片段,它没有
style
属性。

要修改克隆内容中元素的样式,您需要访问克隆片段中的特定元素。

document.addEventListener("DOMContentLoaded", () => {
    let template = document.querySelector(".template");
    let button = document.querySelector(".send");
    let screen = document.querySelector(".screen");

    button.addEventListener("click", () => {
        let template_clone = template.content.cloneNode(true);
        let box1 = template_clone.querySelector(".box1"); // Access the element inside the clone
        box1.style.background = "red"; // Modify the style of the element inside the clone
        screen.appendChild(template_clone); // Append the clone to the screen
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.