Как я могу использовать JavaScript для создания и стиля (и добавления на страницу) div с содержимым? Я знаю, что это возможно, но как?
Как создать и стилизовать div с помощью JavaScript?
Ответ 1
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>
Ответ 2
Зависит от того, как вы это делаете. Чистый javascript:
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');
Ура!
Ответ 3
В этом решении используется библиотека jquery
$('#elementId').append("<div class='classname'>content</div>");
Ответ 4
Здесь одно решение, которое я бы использовал:
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;
Просто как пирог.
Ответ 5
В то время как другие ответы здесь работают, я замечаю, что вы попросили div с контентом. Так вот моя версия с дополнительным контентом. JSFiddle внизу внизу.
JavaScript (с комментариями) :
// 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; }
Примечание: строки CSS, заимствованные из Ratal Tomal
Ответ 6
Вы можете создать как это
board.style.cssText = "position:fixed;height:100px;width:100px;background:#ddd;"
document.getElementById("main").appendChild(board);
Полный Runnable Snippet:
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>