Как добавить класс в элемент DOM в JavaScript?
Как добавить класс div
?
var new_row = document.createElement('div');
7 ответов
new_row.className = "aClassName";
Heres дополнительная информация о MDN:className
здесь работает исходный код с использованием функционального подхода.
<html>
<head>
<style>
.news{padding:10px; margin-top:2px;background-color:red;color:#fff;}
</style>
</head>
<body>
<div id="dd"></div>
<script>
(function(){
var countup = this;
var newNode = document.createElement('div');
newNode.className = 'textNode news content';
newNode.innerHTML = 'this created div contains class while created!!!';
document.getElementById('dd').appendChild(newNode);
})();
</script>
</body>
</html>
использовать .classList.add()
способ:
const element = document.querySelector('div.foo');
element.classList.add('bar');
console.log(element.className);
<div class="foo"></div>
этот метод лучше, чем перезапись className
свойство, потому что оно не удаляет другие классы и не добавляет класс, если элемент уже имеет его.
вы также можете переключать или удалять классы с помощью element.classList
(см. MDN docs).
существует также способ DOM сделать это в JavaScript:
// Create a div and set class
var new_row = document.createElement("div");
new_row.setAttribute("class", "aClassName" );
// Add some text
new_row.appendChild( document.createTextNode("Some text") );
// Add it to the document body
document.body.appendChild( new_row );
также стоит взглянуть на
var el = document.getElementById('hello');
if(el) {
el.className += el.className ? ' someClass' : 'someClass';
}
var newItem = document.createElement('div');
newItem.style = ('background-color:red');
newItem.className = ('new_class');
newItem.innerHTML = ('<img src="./profitly_files/TimCover1_bigger.jpg" width=50 height=50> some long text with ticker $DDSSD');
var list = document.getElementById('x-auto-1');
list.insertBefore(newItem, list.childNodes[0]);