html - 是否可以创建一种 HTML 对象(即使使用框架)
问题描述
我想知道是否可以创建一种 HTML 对象而不是复制粘贴的东西,我想通过 javascript 来做,但想知道是否有更简单的方法来做到这一点(在 JS 中编写 html 有点乏味)。
基本上让我们说一个像这样的div:
<div class ="col">
<div class="Title">
Title
</div>
<div class="Text">
Text
</div>
</div>
哪个是最好的方法,拥有某种功能,您可以在其中 objectName.create(title, text) 或拥有像 Function(title, text) 这样的 javascript 函数来创建元素?
解决方案
您可以获取外部元素并克隆它,更改其内容并将其附加到您想要的位置。请注意,如果您的元素应该有一个,这可能会重复 id。
function createHtml(title, text) {
const el = document.querySelector('.col').cloneNode(true);
el.querySelector('.Title').innerText = title;
el.querySelector('.Text').innerText = text;
document.body.appendChild(el);
}
createHtml("Foo", "Bar");
<div class="col">
<div class="Title">
Title
</div>
<div class="Text">
Text
</div>
</div>
另一种选择是从头开始创建元素
function createElement(title, text) {
const el = document.createElement('div');
el.clasName = 'col';
const titleDiv = document.createElement('div');
titleDiv.className = 'Title';
titleDiv.appendChild(document.createTextNode(title));
const textDiv = document.createElement('div');
textDiv.className = 'Text';
textDiv.appendChild(document.createTextNode(text));
el.appendChild(titleDiv);
el.appendChild(textDiv);
document.body.appendChild(el);
}
createElement("Foo", "Bar");
请注意,有许多框架(如 angular、react、vue 等)可以更轻松/更好地完成类似的事情。
推荐阅读
- blender - Blender 2.8 如何将面和斜角插入椭圆
- javascript - 绝对定位的嵌套 div 导致溢出问题
- node.js - 升级到 .Net 3.0 后出现错误“npm ERR!缺少脚本:启动”
- arrays - 使用 jq 过滤数组中的特定条目
- email - 是否有关于电子邮件和密码可接受和不可接受字符的标准?
- python - 如何将函数参数的值传递给变量?
- php - 运行 php artisan serve 命令时返回错误 ([ErrorException] chdir(): No such file or directory (errno 2))
- python-3.x - TensorFlow SparseCategoricalAccuracy 度量计算
- machine-learning - 为什么神经网络似乎没有学习?(从头开始构建)
- javascript - 播放在richtexteditor中上传的视频时出现问题