【发布时间】:2018-01-25 00:06:18
【问题描述】:
let main = document.createElement("div"),
togBtn = document.createElement("button"),
divOne = document.createElement("div"),
divTwo = document.createElement("div"),
divThree = document.createElement("div"),
blockQ = document.createElement("blockquote"),
head2 = document.createElement("h2"),
hr = document.createElement("hr"),
textOne = document.createElement("p"),
textTwo = document.createElement("p"),
delBtn = document.createElement("button")
有没有更好的方法来获得这个结果。 可能使用 EJS6 或 jQuery? 这是最终结果。其中一些是彼此的孩子
<div class="classes" data-class="XII">
<button onclick="tog('XII')" class="btn btn-block text-mono btn-outline-secondary">XII</button>
<div id="XII" style="display: none;">
<div class="card mb-3 text-center bg-secondary text-light border-0">
<div class="card-body">
<blockquote class="card-blockquote">
<h2 class="display-4">XII</h2>
<hr class="my-4">
<p class="lead">XII has 5 days per week and will study 6 subjects per day</p>
<p>During the week they will study: Mathematics, Physics, Biology, etc.</p>
<button class="btn btn-shadow text-mono btn-danger">Delete</button>
</blockquote>
</div>
</div>
</div>
</div>
【问题讨论】:
-
这完全取决于你如何处理这些元素,以及它们如何相互关联。您能否提供更完整的代码示例。例如,这些元素是彼此的子/兄弟吗?它们是附加到单个容器还是整个文档?它们可以从预先存在的结构中克隆出来吗?
-
做出改变
-
在这种情况下,1) 将 HTML 放在页面中但用 CSS 隐藏它是有意义的。然后,当你需要它时,
clone()它,修改它然后show()它。 2) 将其作为字符串存储在 JS 中,并在一次操作中将其附加到 DOM。在这两者中,我更喜欢前者,因为它消除了 JS 代码中的 UI 依赖性。 -
我会使用前一个我也不喜欢JS代码中的UI依赖。谢谢
-
罗里所说的。而且,为了让生活更轻松,而不是拥有一个对特定 id 执行操作的按钮(即
tog("XII")),让它对 DOM 中的下一个元素执行该按钮的操作(即tog(this)),然后,this.nextSibling.style.display = ''在您的处理程序中。这样一来,您就可以在不使用 id 的情况下获得适用于页面上每个按钮的功能。
标签: javascript jquery optimization ejs