Làm cách nào tôi có thể tạo và tạo kiểu cho div bằng JavaScript?


Câu trả lời:


273

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);

Sử dụng tài liệu tham khảo cha mẹ thay vì document.body.


Tôi biết điều này đã cũ nhưng thêm một lớp và CSS liên quan sẽ là một cách tiếp cận hiện đại hơn, nhưng đó là một câu hỏi khác.
Mark Schultheiss

63

Phụ thuộc vào cách bạn đang làm điều đó. Javascript thuần túy:

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);

Làm tương tự bằng cách sử dụng jquery rất dễ xấu hổ:

$('body')
.append('my DOM manupulation skills dont seem like a big deal when using jquery')
.css('color', 'red').addClass('myclass');

Chúc mừng!


4
Tôi không nói jQuery dễ hơn, nó hầu như chỉ ngắn hơn. Nhưng, thay vì sử dụng setAttribution cho lớp, tôi sẽ sử dụng div.groupName = 'mygroup';
Daan Wilmer

4
jQuery dễ dàng hơn rất nhiều khi bạn bắt đầu phát triển các giao diện người dùng javascript nặng. cho rằng nó bao gồm mô hình chức năng của lập trình ngay từ đầu, nó làm cho mã của bạn trông và hoạt động tốt. Trường hợp điển hình: ajax sử dụng js bản địa vs jquery :)
jrharshath

3
Gọi jQuery là "chức năng" là một bước tiến lớn. Làm thế nào để bạn xác định mô hình chức năng và theo cách nào bạn nghĩ jQuery chấp nhận nó?

jquery là tuyệt vời nếu bạn có 10 dòng trong ứng dụng của bạn. Chào mừng đến địa ngục nếu bạn xây dựng một ứng dụng nghiêm túc với nó. Brevity không tự động lập trình tốt /
Hal50000

phần jQuery ở đây không nối thêm divnên không trả lời câu hỏi
Mark Schultheiss

10

Trong khi các câu trả lời khác ở đây hoạt động, tôi nhận thấy bạn đã yêu cầu một div có nội dung. Vì vậy, đây là phiên bản của tôi với nội dung bổ sung. Liên kết JSFiddle ở phía dưới.

JavaScript (có ý kiến):

// 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; }

Lưu ý: Các dòng CSS mượn từ Ratal Tomal

Mã thông báo: https://jsfiddle.net/Rani_Kheir/erL7aowz/


9

giải pháp này sử dụng thư viện jquery

$('#elementId').append("<div class='classname'>content</div>");

14
Javascript tìm kiếm hài hước.
TheCarver

5

Đây là một giải pháp mà tôi sẽ sử dụng:

var div = '<div id="yourId" class="yourClass" yourAttribute="yourAttributeValue">blah</div>';

Nếu bạn muốn thuộc tính và / hoặc giá trị thuộc tính được dựa trên các biến:

var id = "hello";
var classAttr = "class";
var div = '<div id='+id+' '+classAttr+'="world" >Blah</div>';

Sau đó, để nối vào cơ thể:

document.getElementsByTagName("body").innerHTML = div;

Dễ như ăn bánh.


Tôi nên viết gì trên trang html?
Md. Nahiduzzaman Rose

1
Chúng ta cần chỉ định [0]khi sử dụng getElementsByTagName(). (Quá ngắn để chỉnh sửa)
HKJeffer

2

Bạn có thể tạo như thế này

board.style.cssText = "position:fixed;height:100px;width:100px;background:#ddd;"

document.getElementById("main").appendChild(board);

Đoạn trích hoàn chỉnh:

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>


2

tạo div với tên id

var divCreator=function (id){
newElement=document.createElement("div");
newNode=document.body.appendChild(newElement);
newNode.setAttribute("id",id);
}

thêm văn bản vào div

var textAdder = function(id, text) {
target = document.getElementById(id)
target.appendChild(document.createTextNode(text));
}

mã kiểm tra

divCreator("div1");
textAdder("div1", "this is paragraph 1");

đầu ra

this is paragraph 1

1

Một điều khác tôi muốn làm là tạo một đối tượng và sau đó lặp qua đối tượng và thiết lập các kiểu như thế bởi vì nó có thể tẻ nhạt khi viết từng kiểu một.

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);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.