如何使用JS向html正文添加内容?

IT技术 javascript
2021-02-02 18:56:10

<section>我的 html 中有很多内容<body>想通过 javascript 添加更多内容。但是,使用innerHTML只是用新的部分替换我现有的部分,而不是将它们添加到旧的部分。

我还能用什么?

6个回答

您可以使用

document.getElementById("parentID").appendChild(/*..your content created using DOM methods..*/)

或者

document.getElementById("parentID").innerHTML+= "new content"
2nd 刹车现代 JS 应用程序和许多其他东西,特别是那些使用“虚拟”DOM aka ReactJs 和类似的东西。始终使用 appendChild。第二个选项将获取当前值,附加您的新字符串,并替换当前值,这将终止虚拟 dom 状态和屏幕上呈现的 dom 之间的连接。东西会刹车。使用使用 1st。appendChild或其他 DOM api。
2021-04-01 18:56:10
我总是尽可能使用 DOM 方法;.createElement.appendChild.insertBefore.replaceChild,等。
2021-04-03 18:56:10
我知道这是一个旧答案,但是在 innerHTML 上的 += 不是将内容附加到元素的好方法。我在一个已经加载了广告的元素上做了 += 并且在附加内容后广告实际上只是空白。切换到 appendChild(element) vs += "content" 修复了广告消失的问题。仅供将来从 Google 登陆此页面的用户使用 :)
2021-04-10 18:56:10

我刚刚遇到了一个类似于这个问题的解决方案,其中包含了一些性能统计数据。

下面的例子似乎更快:

document.getElementById('container').insertAdjacentHTML('beforeend', '<div id="idChild"> content html </div>');

InnerHTML vs jQuery 1 vs appendChild vsinnerAdjecentHTML。

在此处输入图片说明

参考:1)性能统计 2) API - insertAdjacentHTML

我希望这将有所帮助。

谢谢!insertAdjacentHTML 方法很有帮助!
2021-03-18 18:56:10
值得一提的是,它适用于大多数浏览器,包括 Internet Explorer 4+
2021-04-03 18:56:10

我觉得如果你想直接给body添加内容,最好的方法是:

document.body.innerHTML += "bla bla";

要替换它,请使用:

document.body.innerHTML = "bla bla";
这个答案具有误导性,因为第一种方式 ( document.body.innerHTML = "bla blah";) 不是向正文添加内容,而是替换正文中的内容。并且用户特别要求一种向已有内容的正文添加内容的方法。所以这个问题的答案是你展示的技术#2。技术 #1 您可以添加作为附注和解释。
2021-03-20 18:56:10
这对 JS 应用程序有副作用,这种方法会阻止事件和各种随机事件。不要“添加”到innerHTML。使用 DOM API 例如appendChild
2021-03-26 18:56:10
追加而不是擦除 >> document.body.innerHTML += "bla bla";
2021-03-29 18:56:10

尝试以下语法:

document.body.innerHTML += "<p>My new content</p>";
读者还应该查看下面Ulysse BN 答案中的极好快捷方式
2021-03-16 18:56:10
对于通过谷歌等提出这个问题的人:这回答了标题中的问题。+1
2021-03-24 18:56:10
这是一个替换+附加,而不仅仅是一个附加。在长页面上,这可能会非常慢,并且可能会看到页面闪烁。
2021-03-24 18:56:10
这会阻碍现代 JS 应用程序。使用 dom APIappendChild或类似的
2021-04-09 18:56:10

你可能正在使用

document.getElementById('element').innerHTML = "New content"

试试这个:

document.getElementById('element').innerHTML += "New content"

或者,最好使用DOM Manipulation

document.getElementById('element').appendChild(document.createElement("div"))

与使用相比,DOM 操作更受欢迎innerHTML,因为innerHTML只是将字符串转储到文档中。浏览器将不得不重新解析整个文档以获得它的结构。

@Cerbrus 人,没有innerHtml财产。请使用正确的语法更新您的答案 - innerHTML
2021-03-17 18:56:10
@保罗。如果您对我有不同的 DOM 操作教程,我很乐意更改链接。
2021-03-19 18:56:10
请不要向人们推荐 w3schools,它与 w3 没有官方关系并且有很多错误信息(请参阅w3fools.com
2021-04-07 18:56:10
我不得不寻找一些并找到了这些;导航 DOM修改 DOM确实,它们还不是“容易阅读”,但它是处于 alpha 阶段的 wiki。
2021-04-11 18:56:10
@保罗。谢谢,我会把它们添加进去。我刚刚通读了你链接的页面...... w3schools oO 周围有一些非常愚蠢的错误
2021-04-14 18:56:10