我在我的HTML <body>
中有许多<section>
,希望能通过JavaScript添加更多。但是,使用innerHTML
只会用新的替换掉旧的,而不是添加到旧的中。
我还可以使用什么?
我在我的HTML <body>
中有许多<section>
,希望能通过JavaScript添加更多。但是,使用innerHTML
只会用新的替换掉旧的,而不是添加到旧的中。
我还可以使用什么?
你可以使用
document.getElementById("parentID").appendChild(/*..your content created using DOM methods..*/)
或者document.getElementById("parentID").innerHTML+= "new content"
appendChild
或其他DOM API。 - Lukas Liesis我刚刚发现一个类似于这个问题的解决方案,其中包含了一些性能统计数据。
看起来下面的示例更快:
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 += "bla bla";
- Trev14document.body.innerHTML = "bla blah";
)并不是向body添加内容,而是替换body中的内容。而且用户明确要求一种方法来向已经存在内容的body添加内容。所以问题的答案就是你展示的技术#2。技术#1可以作为附注说明添加。 - jbyrdappendChild
。 - Lukas Liesis尝试以下语法:
document.body.innerHTML += "<p>My new content</p>";
appendChild
或类似方法。 - Lukas Liesisdocument.getElementById('element').innerHTML = "New content"
document.getElementById('element').innerHTML += "New content"
document.getElementById('element').appendChild(document.createElement("div"))
相较于使用 innerHTML
, 使用Dom操纵更好,因为 innerHTML
只是简单地将一个字符串转储到文档中。浏览器需要重新解析整个文档来获取其结构。
innerHtml
属性。请使用正确的语法更新您的答案 - innerHTML
。 - likerRr演示:
<!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>
然后你可以在JavaScript中将mySection
作为变量引用:
mySection.innerText += ', world'
// same as: document.getElementById('mySection').innerText += ', world'
mySection.innerText += ', world!'
<section id="mySection"> Hello </section>
document.querySelector('body').appendChild( //your content )
document.querySelector("#yourid").append('<div>my element<div>');
只是:
document.getElementById('myDiv').innerHTMl += "New Content";