JavaScript를 사용하여 div를 만들고 스타일을 어떻게 지정할 수 있습니까?


답변:


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

대신 부모 참조를 사용하십시오 document.body.


나는 이것이 오래되었다는 것을 알고 있지만 클래스와 관련 CSS를 추가하는 것이 더 현대적인 접근 방식이지만 다른 질문입니다.
— Mark Schultheiss

63

어떻게하는지에 따라 다릅니다. 순수한 자바 스크립트 :

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

jquery를 사용하여 동일한 작업을 수행하는 것은 매우 쉽습니다.

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

건배!


4
jQuery가 더 쉽다고 말하지는 않지만 대부분 짧습니다. 그러나 클래스에 setAttribute를 사용하는 대신 div.className = 'myclass'를 사용합니다.
— Daan Wilmer

4
무거운 자바 스크립트 UI를 개발하기 시작하면 jQuery가 훨씬 쉬워집니다. get-go의 프로그래밍 기능 모델을 수용하면 코드를 모양과 기능도 향상시킬 수 있습니다. : JQuery와 대 기본 JS를 사용하여 AJAX : 적절한 예
— jrharshath

3
jQuery를 "기능"이라고 부르는 것은 큰 변화입니다. 기능 모델을 어떻게 정의하고, jQuery가 어떤 방식으로 JQuery를 수용한다고 생각하십니까?

응용 프로그램에 10 줄이 있으면 jquery가 좋습니다. 당신이 그것으로 심각한 응용 프로그램을 구축한다면 지옥에 오신 것을 환영합니다. 간결은 자동으로 좋은 프로그래밍이
— 아닙니다

여기서 jQuery 부분은 추가 div하지 않으므로 질문에 대답하지 않습니다
— Mark Schultheiss

10

다른 답변이 작동하지만 내용이있는 div를 요청한 것으로 나타났습니다. 추가 콘텐츠가 포함 된 내 버전이 있습니다. 하단의 JSFiddle 링크.

자바 스크립트 (댓글 포함):

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

참고 : Ratal Tomal에서 빌린 CSS 행

JSFiddle : https://jsfiddle.net/Rani_Kheir/erL7aowz/


9

이 솔루션은 jquery 라이브러리를 사용합니다.

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

14
재밌는 자바 스크립트.
— TheCarver

5

내가 사용할 하나의 솔루션이 있습니다.

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

속성 및 / 또는 속성 값이 변수를 기반으로하려는 경우 :

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

그런 다음 본문에 추가하십시오.

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

파이처럼 쉽습니다.


html 페이지에 무엇을 작성해야합니까?
— Md. Nahiduzzaman Rose

1
[0]사용할 때 지정해야합니다 getElementsByTagName(). (편집이 너무 짧음)
— HKJeffer

2

이렇게 만들 수 있습니다

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

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

실행 가능한 스 니펫 :

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

ID 이름으로 div 생성

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

div에 텍스트 추가

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

테스트 코드

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

산출

this is paragraph 1

1

내가하고 싶은 또 다른 일은 객체를 만든 다음 객체를 반복하고 스타일을 설정하는 것입니다. 왜냐하면 모든 단일 스타일을 하나씩 작성하는 것이 지루할 수 있기 때문입니다.

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);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.