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?


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' : '' });

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,


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.


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');

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":""});

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');

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'); 

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');

1

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

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

Gracias.


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");
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.