Cómo eliminar la propiedad css en jQuery

197
if(prev_clicked)
{   
    $("#accordion li a.category").css('background-image', 'url("img/off_all_channel.png")');                    
    $("#accordion li a.comment").css('background-image', 'url("img/on_all_online.png")');                   
    $(".icha0").removeProperty("background-color");
    $(".icha0").removeProperty("opacity");
}
else
{   
   $(".icha0").css("background-color","#D5D5D2");
   $(".icha0").css("opacity","0.70");
}

Estoy tratando de eliminar dos propiedades css que agregué pero parece que no funciona. ¿Sin embargo?

SooIn Nam
fuente
1
Además, pruebe Google antes de publicar aquí. No tengo dudas de que el primer resultado para el título exacto que publicaste aquí arrojará un resultado aceptable. No tengo idea de dónde vienes .removeProperty().
Christian
1
@Christian Varga, qué gracioso es, ahora que ha publicado esta pregunta, ES el primer resultado de Google. El segundo resultado es otra respuesta correcta de desbordamiento de pila. El tercero es "removeProp ()" y el cuarto es "removeAttr ()", ambos están equivocados.
Rocketsarefast

Respuestas:

369

Puedes eliminarlos de la siguiente manera:

$(".icha0").css({ 'background-color' : '', 'opacity' : '' });
Nevin
fuente
26
Es un poco tarde para responder, pero creo que esto es importante. Debe tener en cuenta que esto solo eliminará los atributos del elemento definidos en el atributo "estilo". Esto NO tendrá ningún efecto si son asignados a una clase o similar.
José Carlos
15
Si necesita eliminar un conjunto de propiedades a través de una clase, puede establecerlo en 'inicial' en lugar de ''
James Brierley
82

También puede usar .css()para eliminar la propiedad css, de esta manera:

$(".icha0").css("background-color","");
$(".icha0").css("opacity","");

Como se menciona en la documentación de jquery:

Al establecer el valor de una propiedad de estilo en una cadena vacía, por ejemplo, $ ('# mydiv'). Css ('color', ''), se elimina esa propiedad de un elemento si ya se ha aplicado directamente,

Mahmoud Gamal
fuente
16
De jqeury css: "Sin embargo, no elimina un estilo que se ha aplicado con una regla CSS en una hoja de estilo o elemento <style>"
eggmatters
36

Para eliminar la propiedad CSS en línea, use:

$('.className').css({propertyName: ''});

Para eliminar todo el estilo en línea de un elemento, use:

$('.className').removeAttr('style');

También he encontrado esta sugerencia para eliminar la propiedad CSS del uso de estilos (archivo separado):

$ ('. className'). style.propertyName = '';

PERO no pude hacerlo funcionar en absoluto, así que lo pongo aquí solo para tu información.

3Gee
fuente
44
$ ('. className'). style.propertyName = ''; debe ser $ ('. className') [0] .style.propertyName = ''; - pero es absurdamente absurdo
SuperNova
20

Puede volver a establecer las propiedades en blanco:

$(".icha0").css("background-color","");

O puede cambiar el código para usar las clases definidas en un archivo CSS:

$(".icha0").addClass('properties'); 
$(".icha0").removeClass('properties');
Jivings
fuente
Ayudó a eliminar bordes irregulares debido a perspectivas 3d anidadas. Estaba frustrado al tratar de eliminar una de las perspectivas para solucionar el problema de anti alias, ¡esta publicación me salvó el día! ¡Gracias!
Richard Yan
3

Tenemos dos formas, puede eliminar directamente la clase de estilo CSS aplicada que se aplica al elemento DOM o eliminar el estilo CSS aplicado del elemento

//Remove the class associated with element

$('#ID').removeClass("cssClass");

//Remove the CSS style from DOM element

$('p').css({"color":""});
Rajeev
fuente
3
No hay nada nuevo en esta respuesta, no tiene sentido repetir otras respuestas.
Shadow Wizard es Ear For You el
3

Estaba teniendo este problema pero no he visto ninguna solución aquí que satisfaga el OP. La mayoría de las soluciones sugieren deshacerse de todo el atributo de estilo que no vale la pena.

Usé el método de utilería de jQuery .

var styleObject = $('my-selector').prop('style'); 

styleObject.removeProperty('background-color');
NaxBuda
fuente
2

Alterne una opción menos que ideal, pero podría solucionar varios problemas. Agregue una nueva clase al elemento con valor de herencia :

css

.clearCSS {
    background-color: inherit !important;
}

jquery

$(".icha0").addClass('clearCSS'); 
Andrés
fuente
2

Esto es literalmente una copia pegada de esta respuesta , y la uso para borrar el estilo CSS que agregué con jQuery en una función ejecutada previamente.

Para eliminar la propiedad CSS en línea, use:

$('.className').css({propertyName: ''});   

Para eliminar todo el estilo en línea de un elemento, use:

$('.className').removeAttr('style');

O por ID:

$('#idName').removeAttr('style');
Jortega
fuente
1

Para eliminar todas las propiedades CSS en JQuery, se puede usar el siguiente código:

    $(".selector").removeClass().removeAttr('style');

Gracias.

Kawsik Roy
fuente
1

si necesita eliminar y no actualizar una propiedad específica, simplemente puede usar removeProp y no removeProperty :

$(".icha0").removeProp("background-color");
$(".icha0").removeProp("opacity");
Azzabi Haythem
fuente