Comment ajouter une classe pour le div
?
var new_row = document.createElement('div');
Comment ajouter une classe pour le div
?
var new_row = document.createElement('div');
Réponses:
new_row.className = "aClassName";
Voici plus d'informations sur MDN: className
new_row.className = "aClassName1 aClassName2";
juste un attribut, vous pouvez assigner n'importe quelle chaîne que vous aimez, même si cela rend le html invalide
new_row.classList.add('aClassName');
car vous pouvez ensuite ajouter plusieurs noms de classe
Utilisez la .classList.add()
méthode:
const element = document.querySelector('div.foo');
element.classList.add('bar');
console.log(element.className);
<div class="foo"></div>
Cette méthode est meilleure que d'écraser la className
propriété, car elle ne supprime pas les autres classes et n'ajoute pas la classe si l'élément l'a déjà.
Vous pouvez également basculer ou supprimer des classes à l'aide de element.classList
(voir la documentation MDN ).
Voici le code source de travail en utilisant une approche de fonction.
<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 a class while created!!!';
document.getElementById('dd').appendChild(newNode);
})();
</script>
</body>
</html>
Il y a aussi la façon DOM de le faire en 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 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]);
var new_row = document.createElement('div');
new_row.setAttribute("class", "YOUR_CLASS");
Cela fonctionnera ;-)
Il convient également de jeter un œil à:
var el = document.getElementById('hello');
if(el) {
el.className += el.className ? ' someClass' : 'someClass';
}
Si vous souhaitez créer un nouveau champ de saisie avec par exemple le file
type:
// Create a new Input with type file and id='file-input'
var newFileInput = document.createElement('input');
// The new input file will have type 'file'
newFileInput.type = "file";
// The new input file will have class="w-95 mb-1" (width - 95%, margin-bottom: .25rem)
newFileInput.className = "w-95 mb-1"
La sortie sera: <input type="file" class="w-95 mb-1">
Si vous souhaitez créer une balise imbriquée à l'aide de JavaScript, la méthode la plus simple consiste à innerHtml
:
var tag = document.createElement("li");
tag.innerHTML = '<span class="toggle">Jan</span>';
La sortie sera:
<li>
<span class="toggle">Jan</span>
</li>
Remarque: La
classList
propriété n'est pas prise en charge dans Internet Explorer 9 . Le code suivant fonctionnera dans tous les navigateurs:
function addClass(id,classname) {
var element, name, arr;
element = document.getElementById(id);
arr = element.className.split(" ");
if (arr.indexOf(classname) == -1) { // check if class is already added
element.className += " " + classname;
}
}
addClass('div1','show')
Source: comment ajouter une classe js
Cela fonctionnera également.
$(document.createElement('div')).addClass("form-group")