[英]Is it possible to dynamically create divs using ONLY html, css and javascript?
我试图在用户按下按钮时添加(并显示)div,我也在使用css网格。 我在这里看过,所有解决方案都建议使用angular js或node js。
我最近(上周)学习了html,css和javascript,由于时间紧迫,所以我问是否可以在没有angular js或node js的情况下创建这些div?
您可以使用createElement
创建HTML元素
这非常简单:
function add() { // Create element; can be whatever you want, eg div, h1, p, img... var div = document.createElement('div'); // Set some attributes div.style.width = '200px'; div.style.height = '200px'; div.style.backgroundColor = 'red'; // Append the div to the body document.body.appendChild(div); }
<button onclick="add()">Add div</button>
有很多方法可以做到这一点。
显而易见的是一个神秘命名的createElement
,通常与appendChild
和/或insertBefore
结合使用:
parent.appendChild(document.createElement("div"));
您可以通过向其innerHTML
分配包含HTML的字符串来替换父元素的内容:
parent.innerHTML = "<div></div>";
#2 替换父母的内容。 要添加到它,您可以再次使用insertAdjacentHTML
,同时使用包含HTML的字符串:
parent.insertAdjacentHTML("beforeend", "<div></div>");
在MDN的DOM部分中有很多发现。
是的,您可以使用document.createElement
尝试这个:
<html>
<head>
<title>Hello World</title>
</head>
<body>
<script>
function CreateDiv(){
var myDiv = document.createElement("DIV"); // Create a <div> node
var myTextNode = document.createTextNode("Hello World"); // Create a text node
myDiv.appendChild(myTextNode); // Append the text
//document.getElementById("myList").appendChild(node); // Append
document.body.appendChild(myDiv);
}
</script>
<input type="button" onclick="CreateDiv();" value="Create div">
</body>
</html>
您可以使用本机的createElement()方法。
var btn = document.createElement("BUTTON"); // Create a <button> element
var t = document.createTextNode("CLICK ME"); // Create a text node
btn.appendChild(t); // Append the text to <button>
document.body.appendChild(btn); // Append <button> to <body>
https://www.w3schools.com/jsref/met_document_createelement.asp
<!DOCTYPE html> <html> <head> </head> <body> <div class="wrap"> <button class="btn" onclick="document.getElementById('text').innerHTML = 'Hello'"> Click On Me</button> <p id="text"></p> </div> </body> </html>
检查这个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.