在没有 jQuery 的情况下使用 JavaScript 中的对象创建 html DOM 元素
我想知道是否有一种“简单”的方法通过指定 json 中的属性来创建大 DOM 对象?
我知道可以使用appendChild和/或innerHTML来做到这一点,但是对于这个有问题的对象,它看起来相当混乱。
目标是在 javascript 中从下往上创建这个 HTML 对象:
<div class="p-2">
<div class="d-flex p-2 bg-dark2-35">
<div class="Popover h-3">
<div class="pfp" style="background-image: url('/data/images/PP/1.png')"></div>
</div>
<div class="d-grid ms-2 w-100">
<p><b class="lead text-blue">Username</b> — <i>2020-01-16 19:29:34</i></p>
<p class="text-white">some comment text</p>
</div>
</div>
</div>
我想知道是否可以做这样的事情(我知道它不起作用):
let comment = document.getElementById("comment-section");
let elm = {
className: "p-2",
appendChild(node) {
classList.add("d-flex", "p-2", "bg-dark2-35"),
appendChild(node2){
classList.add("Popover", "h-3"),
// ... and so on
}
}
}
comment.appendChild(elm);
有没有一种简单的方法可以在纯 JS 中做到这一点?我必须创建一个函数才能实现此目的吗?或者甚至可以导入一个库?
这个问题有点类似于 Create DOM element from Object in javascript ,但是当涉及到这么多孩子、孩子等等时,我完全迷失了
当谈到 JavaScript 时,我有点新手。这个问题可能会很奇怪
I'm wondering if there is an "easy" way to create a big DOM object by specifying the attributes in a json?
I know it's possible to do this with appendChild and/or innerHTML, but for this object in question, it looks quite messy.
The goal is to create this HTML object from the bottom up in javascript:
<div class="p-2">
<div class="d-flex p-2 bg-dark2-35">
<div class="Popover h-3">
<div class="pfp" style="background-image: url('/data/images/PP/1.png')"></div>
</div>
<div class="d-grid ms-2 w-100">
<p><b class="lead text-blue">Username</b> — <i>2020-01-16 19:29:34</i></p>
<p class="text-white">some comment text</p>
</div>
</div>
</div>
I was wondering if it's possible to do something like this (I know it doesn't work):
let comment = document.getElementById("comment-section");
let elm = {
className: "p-2",
appendChild(node) {
classList.add("d-flex", "p-2", "bg-dark2-35"),
appendChild(node2){
classList.add("Popover", "h-3"),
// ... and so on
}
}
}
comment.appendChild(elm);
Is there an easy way to do this in pure JS? Would I have to make a function to achieve this? or maybe go as far as to import a library?
The question is a bit similar to Create DOM element from Object in javascript, but I'm completely lost when it comes to this many childrens, with childrens and so on
I'm a bit of a newbie when it comes to JavaScript. The question might come off as strange
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用模板文字Mdn 文档 - 模板文字
You can use template literals Mdn docs - Template Literals
回到这个问题,看看这个函数:
它可以像这样创建:
总的来说,与 React 可以实现或仅使用模板文字相比,这有点混乱。
Coming back to this question, check out this function:
And it can be created like so:
Overall this is a bit messy compared to something that React can achieve or just using template literals.