2009-07-12 7 views

risposta

270
new_row.className = "aClassName"; 

Heres più informazioni MDN: className

+1

Psst, vuoi dire 'new_row'. – Zarel

+2

come impostare più nomi di classe? –

+3

@Sponge 'new_row.className =" aClassName1 aClassName2 ";' è solo un attributo, puoi assegnare qualsiasi stringa che ti piace, anche se rende invalido il codice html –

14

Qui sta lavorando il codice sorgente utilizzando la funzione approccio.

<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> 
+6

Quindi? Serve come esempio, non c'è niente di sbagliato in questo. – Carey

3

Per cambiare attributo class per l'elemento HTML, utilizzare element.className:

const element = document.createElement('div'); 
element.className = 'foo'; 

svantaggio di questa soluzione è che ignora completamente l'attributo class. Ovviamente è possibile aggiungere class usando l'operatore += (element.className += " bar"), ma se questo elemento ha già questa classe, sarebbe inutilmente raddoppiato. Se vuoi aggiungere class all'elemento che ha già alcune classi, ad es. <div class="foo"></div>, IMHO la soluzione migliore sarebbe utilizzare element.classList. Ha add() metodo che permette di aggiungere una classe per elemento:

const element = document.querySelector('div.foo'); 
element.classList.add('bar'); 

È inoltre possibile attivare o disattivare o rimuovere classi utilizzando element.classList. Sfortunatamente, non è supportato da IE < = 9 e supportato solo parzialmente da IE 10 e 11. Vedere support table on caniuse.com. Tuttavia, v'è un shim che lavora per IE> = 8.

0

Vale anche la pena dare un'occhiata a

var el = document.getElementById('hello'); 
    if(el) { 
    el.className += el.className ? ' someClass' : 'someClass'; 
    } 
9

C'è anche il modo DOM di fare questo in 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); 
0

Anche questo funzionerà.

$(document.createElement('div')).addClass("form-group") 
+1

Solo se si utilizza jQuery. –

0
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]); 
+0

Considera di spiegare perché l'hai pubblicato, aiuterà gli altri a imparare. –

+0

Solo un esempio di codice funzionante –

Problemi correlati