首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >由Javascript创建的元素在视觉上不可见

由Javascript创建的元素在视觉上不可见
EN

Stack Overflow用户
提问于 2020-04-14 02:35:33
回答 1查看 54关注 0票数 0

所以,最近我做了一个项目,Javascript只是创建一个元素,然后从Firestore数据库获取数据,然后将其附加到HTML主体中。这包括一个div,它充当带有object.className的盒容器,h4充当标题,一些p作为文本。但是,我添加的所有元素在网页上都是不可见的。但令人惊讶的是,如果我打开检查元素,并调用其中一个对象的console.log(object),它们将显示HTML元素,这正是我想要的,当我将它悬停时,它将在网页中显示一个突出显示的区域,该区域与我想要的大小一致。但是,还是看不见。实际上,在HTML文档中,我在Javascript中的元素之前添加了一些框和元素,如果我从HTML中添加一些新元素,那么Javascript中的元素就会在HTML中新添加的元素之后被推入。有人能帮我吗?我是这个领域的新手。谢谢。

(

1.)HTML元素的一部分(这里的Firebase设置得很好)

代码语言:javascript
运行
复制
<body>
<div class="big-container">
    <div class="title">
        <span class="title-text">Kompor</span>
    </div>
    <nav id="wrapper">
        <!-- ONE DIV CALLED "IMPORTANT" is necessary for the last box visible -->
        <div onclick="" class="box">
            <h4 class="title-box">Rinnai 522-E</h4>
            <p class="tc-1">HB</p>
            <p class="tc-2">313.000</p>
            <p class="tc-3">HJ</p>
            <p class="tc-4">345.000</p>
        </div>
        <div onclick="" class="box 2">
            <h4 class="title-box">Rinnai 522-A</h4>
            <p class="tc-1">HB</p>
            <p class="tc-2">313.000</p>
            <p class="tc-3">HJ</p>
            <p class="tc-4">345.000</p>
        </div>
        <div onclick="" class="box">
            <h4 class="title-box">Rinnai 522-E</h4>
            <p class="tc-1">HB</p>
            <p class="tc-2">313.000</p>
            <p class="tc-3">HJ</p>
            <p class="tc-4">345.000</p>
        </div>
        <div onclick="" class="box">
            <h4 class="title-box">Rinnai 522-E</h4>
            <p class="tc-1">HB</p>
            <p class="tc-2">313.000</p>
            <p class="tc-3">HJ</p>
            <p class="tc-4">345.000</p>
        </div>
        <div onclick="" class="box">
            <h4 class="title-box">Rinnai 522-E</h4>
            <p class="tc-1">HB</p>
            <p class="tc-2">313.000</p>
            <p class="tc-3">HJ</p>
            <p class="tc-4">345.000</p>
        </div>
        <div onclick="" class="box">
            <h4 class="title-box">Rinnai 522-E</h4>
            <p class="tc-1">HB</p>
            <p class="tc-2">313.000</p>
            <p class="tc-3">HJ</p>
            <p class="tc-4">345.000</p>
        </div>
        <div class="box"></div>
        <div class="box"></div>
        <div class="important"></div>  
    </nav>
</div>    

(

2.)JS

代码语言:javascript
运行
复制
//DOMstart
const docTarget = document.querySelector('#wrapper');

function insertDoc(doc){
        //creation
        let box = document.createElement('div');
        let header = document.createElement('h4');
        let hargaBeli = document.createElement('p');
        let p2 = document.createElement('p');
        let hargaJual = document.createElement('p');
        let p4 = document.createElement('p');
    //insertion

    header.textContent = doc.data().name;
    hargaBeli.innerHTML = "HB";
    p2.textContent = doc.data().HB;
    hargaJual.innerHTML = "HJ";
    p4.textContent = doc.data().HJ;

    console.log(box);
    console.log(header);
    console.log(hargaBeli);
    console.log(p2);
    console.log(hargaJual);
    console.log(p4);

    //naming
    box.classname = "box";
    header.className = "title-box";
    hargaBeli.className = "tc-1";
    p2.className = "tc-2";
    hargaJual.className = "tc-3";
    p4.className = "tc-4";

    //box-naming plus deletion ops
    var hitung = 1;
    hitung++;
    console.log(hitung);
    box.className = "box " + hitung;
    box.onclick = function(){
                        if (confirm('Apa kamu yakin mau menghapus produk ini?')) {
                            this.parentElement.removeChild(this);
                        } else {
                        console.log('Tidak jadi menghapus produk.');
                        }
    }

    //appending...
    box.appendChild(header);
    box.appendChild(hargaJual);
    box.appendChild(p2);
    box.appendChild(hargaBeli);
    box.appendChild(p4);
    docTarget.appendChild(box); 
    console.log(box.className + "Creation Tracker"); //detection
}

//get doc

var doc;
db.collection('Product').get().then((snapshot) => {
    snapshot.docs.forEach(doc => {
        insertDoc(doc);
    })
})

CSS连接得很好,正如您所看到的,可以很好地使用HTML文档中的这些元素。

EN

回答 1

Stack Overflow用户

发布于 2020-04-14 03:05:29

当我在jsbin上尝试您的HTML和javascript代码时,我发现它运行得很好。问题在于变量doc,您可以添加console.log以再次获取变量以了解原因,或者可以粘贴数据结构以进行进一步调试。

https://jsbin.com/jeyamoqabu/edit?html,js,output

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61199866

复制
相关文章

相似问题

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