2011-05-30 21 views
7

Esto es probablemente muy simple, sé que puedes cambiar las propiedades de css con javascript haciendo;JavaScript onClick cambiar css

document.getElementById('bob').style.background='#000000'; 

Pero recientemente descubrí que puedes hacer esto de manera diferente y personalizar muchas cosas, algo así;

document.getElementById('bob').css='background:#ffffff; color: #000000;'; 

el problema es que se han olvidado de lo que el código, Así que lo que básicamente quiero lograr es lo que va en lugar de la ".css"? ¿Alguien sabe el código que necesito en la parte superior de su cabeza?

+2

KHM ... biblioteca? –

+0

nope :(grrrr, debería haberlo escrito –

Respuesta

19

Creo que se está buscando la propiedad .cssText de style

document.getElementById('bob').style.cssText = 'background:#ffffff; color: #000000;'; 

Ejemplo: http://jsfiddle.net/Sx5yH/

+0

Life saver :) gracias –

+0

¿Es 'cssText' cross-browser? –

+0

@ Šime Vidas: por lo que puedo decir, ¡sí! Pero no sé sobre IE6 y abajo o FF <3 por ejemplo. – jAndy

7

Tener un vistazo a este violín: http://jsfiddle.net/YSJfz/

document.getElementById('myDiv').setAttribute('style', 'background: #f00; color: #fff;'); 

Todo lo que hacer es cambiar el atributo style del elemento, es que lo que quería lograr?

+0

The .cssText es más fácil, pero su forma también se ve bien :) –

3

Creo que lo que está buscando es Change an element's class with JavaScript. Debido a esto, no es necesario codificar todos los cambios de estilo en el propio JavaScript (lo cual es malo).

por lo que tendrá una clase CSS semejante:

.myClass { 
    background: #ffffff; 
    color: #000000; 
} 

y se le establece en su elemento de la siguiente manera:

document.getElementById("MyElement").className += " myClass"; 
+0

Sí, sé que puedes hacerlo de esta manera, pero creo que necesito el .cssText por lo que estoy tratando de hacer, pero gracias de todos modos: D –

2
document.getElementById('bob').style.cssText = 
    'background:#ffffff; color: #000000;';