Bagaimana saya bisa menggunakan JavaScript untuk membuat dan gaya (dan menambahkan ke halaman) div, dengan konten? Saya tahu itu mungkin, tetapi bagaimana caranya?
Bagaimana saya bisa menggunakan JavaScript untuk membuat dan gaya (dan menambahkan ke halaman) div, dengan konten? Saya tahu itu mungkin, tetapi bagaimana caranya?
Jawaban:
var div = document.createElement("div");
div.style.width = "100px";
div.style.height = "100px";
div.style.background = "red";
div.style.color = "white";
div.innerHTML = "Hello";
document.getElementById("main").appendChild(div);
<body>
<div id="main"></div>
</body>
var div = document.createElement("div");
div.style.width = "100px";
div.style.height = "100px";
div.style.background = "red";
div.style.color = "white";
div.innerHTML = "Hello";
document.getElementById("main").appendChild(div);
OR
document.body.appendChild(div);
Gunakan referensi orang tua sebagai ganti document.body.
Tergantung bagaimana Anda melakukannya. Javascript murni:
var div = document.createElement('div');
div.innerHTML = "my <b>new</b> skill - <large>DOM maniuplation!</large>";
// set style
div.style.color = 'red';
// better to use CSS though - just set class
div.setAttribute('class', 'myclass'); // and make sure myclass has some styles in css
document.body.appendChild(div);
Melakukan hal yang sama dengan menggunakan jquery adalah hal yang memalukan:
$('body')
.append('my DOM manupulation skills dont seem like a big deal when using jquery')
.css('color', 'red').addClass('myclass');
Bersulang!
divsehingga tidak menjawab pertanyaan
Sementara jawaban lain di sini berfungsi, saya perhatikan Anda meminta div dengan konten. Jadi inilah versi saya dengan konten tambahan. Tautan JSFiddle di bagian bawah.
JavaScript (dengan komentar):
// Creating a div element
var divElement = document.createElement("Div");
divElement.id = "divID";
// Styling it
divElement.style.textAlign = "center";
divElement.style.fontWeight = "bold";
divElement.style.fontSize = "smaller";
divElement.style.paddingTop = "15px";
// Adding a paragraph to it
var paragraph = document.createElement("P");
var text = document.createTextNode("Another paragraph, yay! This one will be styled different from the rest since we styled the DIV we specifically created.");
paragraph.appendChild(text);
divElement.appendChild(paragraph);
// Adding a button, cause why not!
var button = document.createElement("Button");
var textForButton = document.createTextNode("Release the alert");
button.appendChild(textForButton);
button.addEventListener("click", function(){
alert("Hi!");
});
divElement.appendChild(button);
// Appending the div element to body
document.getElementsByTagName("body")[0].appendChild(divElement);
HTML:
<body>
<h1>Title</h1>
<p>This is a paragraph. Well, kind of.</p>
</body>
CSS:
h1 { color: #333333; font-family: 'Bitter', serif; font-size: 50px; font-weight: normal; line-height: 54px; margin: 0 0 54px; }
p { color: #333333; font-family: Georgia, serif; font-size: 18px; line-height: 28px; margin: 0 0 28px; }
Catatan: Baris CSS yang dipinjam dari Ratal Tomal
Inilah satu solusi yang akan saya gunakan:
var div = '<div id="yourId" class="yourClass" yourAttribute="yourAttributeValue">blah</div>';
Jika Anda ingin atribut dan / atau nilai atribut didasarkan pada variabel:
var id = "hello";
var classAttr = "class";
var div = '<div id='+id+' '+classAttr+'="world" >Blah</div>';
Kemudian, untuk ditambahkan ke tubuh:
document.getElementsByTagName("body").innerHTML = div;
Mudah seperti pai.
[0]kapan menggunakan getElementsByTagName(). (Terlalu pendek untuk diedit)
Anda bisa buat seperti ini
board.style.cssText = "position:fixed;height:100px;width:100px;background:#ddd;"
document.getElementById("main").appendChild(board);
Cuplikan Runnable Lengkap:
var board;
board= document.createElement("div");
board.id = "mainBoard";
board.style.cssText = "position:fixed;height:100px;width:100px;background:#ddd;"
document.getElementById("main").appendChild(board);
<body>
<div id="main"></div>
</body>
buat div dengan nama id
var divCreator=function (id){
newElement=document.createElement("div");
newNode=document.body.appendChild(newElement);
newNode.setAttribute("id",id);
}
tambahkan teks ke div
var textAdder = function(id, text) {
target = document.getElementById(id)
target.appendChild(document.createTextNode(text));
}
kode uji
divCreator("div1");
textAdder("div1", "this is paragraph 1");
keluaran
this is paragraph 1
Hal lain yang ingin saya lakukan adalah membuat objek dan kemudian mengulang melalui objek dan mengatur gaya seperti itu karena bisa membosankan menulis setiap gaya satu per satu.
var bookStyles = {
color: "red",
backgroundColor: "blue",
height: "300px",
width: "200px"
};
let div = document.createElement("div");
for (let style in bookStyles) {
div.style[style] = bookStyles[style];
}
body.appendChild(div);