<section>
我的 html 中有很多内容,<body>
想通过 javascript 添加更多内容。但是,使用innerHTML
只是用新的部分替换我现有的部分,而不是将它们添加到旧的部分。
我还能用什么?
<section>
我的 html 中有很多内容,<body>
想通过 javascript 添加更多内容。但是,使用innerHTML
只是用新的部分替换我现有的部分,而不是将它们添加到旧的部分。
我还能用什么?
您可以使用
document.getElementById("parentID").appendChild(/*..your content created using DOM methods..*/)
或者
document.getElementById("parentID").innerHTML+= "new content"
我刚刚遇到了一个类似于这个问题的解决方案,其中包含一些性能统计信息。
下面的示例似乎更快:
document.getElementById('container').insertAdjacentHTML('beforeend', '<div id="idChild"> content html </div>');
InnerHTML vs jQuery 1 vs appendChild vs innerAdjecentHTML。
参考:1)性能统计 2)API - insertAdjacentHTML
我希望这将有所帮助。
我认为如果您想直接将内容添加到正文中,最好的方法是:
document.body.innerHTML += "bla bla";
要替换它,请使用:
document.body.innerHTML = "bla bla";
尝试以下语法:
document.body.innerHTML += "<p>My new content</p>";
你可能正在使用
document.getElementById('element').innerHTML = "New content"
试试这个:
document.getElementById('element').innerHTML += "New content"
或者,最好使用DOM Manipulation:
document.getElementById('element').appendChild(document.createElement("div"))
与 using 相比,Dom 操作更受欢迎innerHTML
,因为innerHTML
只需将字符串转储到文档中。浏览器将不得不重新解析整个文档以获取它的结构。
工作演示:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
onload = function(){
var divg = document.createElement("div");
divg.appendChild(document.createTextNode("New DIV"));
document.body.appendChild(divg);
};
</script>
</head>
<body>
</body>
</html>
在大多数浏览器中,您可以使用 javascript 变量而不是使用document.getElementById
. 假设您的 html 正文内容是这样的:
<section id="mySection"> Hello </section>
然后你可以mySection
在javascript中引用一个变量:
mySection.innerText += ', world'
// same as: document.getElementById('mySection').innerText += ', world'
看到这个片段:
mySection.innerText += ', world!'
<section id="mySection"> Hello </section>
只是:
document.getElementById('myDiv').innerHTMl += "New Content";
你也可以这样做
document.querySelector("#yourid").append('<div>my element<div>');
document.querySelector('body').appendChild( //your content )
最近,我遇到了同样的问题,但我想在正文内容的开头添加内容。所以我发现这个解决方案值得:insertAdjecentHTML(positions, text)
在指定位置时使用。该位置可以是'beforebegin'
, 'afterbegin'
, 'beforeend'
,'afterend'
const element = document.getElementById('my-id')
element.insertAdjacentHTML(position, text);