es6的新特性是,有没有一种方法可以在DOM中使用模板文字''来附加HTML,而不会覆盖当前发布的内容?
我有一个巨大的HTML块,我需要为正在创建的列表发布。在那里用户可以发布他们的输入。
每次提交任务时,它会覆盖当前提交的任务。我需要它附加在下面。
拉小提琴作示范。
https://jsfiddle.net/uw1o5hyr/5/
<div class = main-content>
<form class ='new-items-create'>
<label>Name:</label><input placeholder=" A Name" id="name">
<button class = "subBtn">Submit</button>
</form>
</div>
<span class="new-name"></span>
JavaScript
form.addEventListener('submit',addItem);
function addItem(event){
event.preventDefault();
let htmlStuff =
`
<div class="main">
<div class="a name">
<span>${name.value}</span>
</div>
<div>
`
itemCreated.innerHTML = htmlStuff;
}
3条答案
按热度按时间fae0ux8s1#
insertAdjacentHTML()
在4个位置添加htmlString,请参见演示。与.innerHTML
不同,它不会重新呈现和破坏原始HTML和引用。.innerHTML
唯一做的insertAdjacentHTML()
不能做的事情是读取HTML。注意:即使使用+=
运算符,.innerHTML
的赋值也总是破坏所有内容。请参阅此post9jyewag02#
您可以只使用
+=
来附加:44u64gxh3#
如果您按照上面的步骤创建了元素原型,您可以将元素作为引用重新获取,以便您可以继续修改它:
根据您的工作量,也许使用模板引擎会更好,但这可以让您在没有重量的情况下走得很远。