Adding and removing style attribute from div with jquery
Asked Answered
T

7

137

I've inherited a project I'm working on and I'm updating some jquery animations (very little practice with jquery).

I have a div I need to add and remove the style attribute from. Here is the div:

<div id='voltaic_holder'>

At one point in the animation I need to add a style to it:

<div id='voltaic_holder' style='position:absolute;top:-75px'>

I've searched around and found the .removeAttr() method but I can't see how to add it, or even remote parts of it (like the top:-75px only).

Thanks,

Toxoid answered 22/3, 2011 at 16:57 Comment(1)
$('voltaic_holder').style = null perhaps? Styles have their own entire object tree. most other attributes are just key=value type data.Cwm
M
311

You could do any of the following

Set each style property individually:

$("#voltaic_holder").css("position", "relative");

Set multiple style properties at once:

$("#voltaic_holder").css({"position":"relative", "top":"-75px"});

Remove a specific style:

$("#voltaic_holder").css({"top": ""});
// or
$("#voltaic_holder").css("top", "");

Remove the entire style attribute:

$("#voltaic_holder").removeAttr("style")
Myongmyopia answered 22/3, 2011 at 17:2 Comment(3)
Can I add more than 1 css property per line? Or do I have to do one for each style property like so: $("#voltaic_holder").css("position", "relative"); $("#voltaic_holder").css("top", "-75");Toxoid
To answer that, yes you can. Just use an object literal on the .css() function. Like $('foo').css({'height':'30px','width':'50px'});Pallaten
@AdamAlbrecht How can I remove specific style that I have added because in $("#voltaic_holder").removeAttr("style") it removes all applied style that was by default with newly added.Kinematograph
P
28

To completely remove the style attribute of the voltaic_holder span, do this:

$("#voltaic_holder").removeAttr("style");

To add an attribute, do this:

$("#voltaic_holder").attr("attribute you want to add", "value you want to assign to attribute");

To remove only the top style, do this:

$("#voltaic_holder").css("top", "");
Plath answered 22/3, 2011 at 17:1 Comment(0)
A
19

If you are using jQuery, use css to add CSS

$("#voltaic_holder").css({'position': 'absolute',
    'top': '-75px'});

To remove CSS attributes

$("#voltaic_holder").css({'position': '',
    'top': ''});
Atreus answered 22/3, 2011 at 17:0 Comment(2)
You cannot remove the position or top attribute from the voltaic_holder element, because it does not have thos attributes. Those are css properties defined in the style attribute.Plath
@Peter - doh! Edited to use .cssAtreus
H
12

The easy way to handle this (and best HTML solution to boot) is to set up classes that have the styles you want to use. Then it's a simple matter of using addClass() and removeClass(), or even toggleClass().

$('#voltaic_holder').addClass('shiny').removeClass('dull');

or even

$('#voltaic_holder').toggleClass('shiny dull');
Homosporous answered 22/3, 2011 at 17:1 Comment(0)
W
7

In case of .css method in jQuery for !important rule will not apply.

In this case we should use .attr function.

For Example: If you want to add style as below:

<div id='voltaic_holder' style='position:absolute;top:-75px !important'>

You should use:

$("#voltaic_holder").attr("style", "position:absolute;top:-75px !important");

Hope it helps some one.

Whip answered 13/12, 2018 at 12:47 Comment(0)
P
4

Remove style attribute from div using J query:

$("#TableDiv").removeAttr("style");

Add style to div using J query:

$("#TableDiv").attr("style", "display: none;");

Add style using html:

<div class="row" id="TableDiv" style="display: none;">
</div>

Hope it will helpful :)

Prescriptive answered 24/9, 2018 at 10:50 Comment(0)
L
2

Anwer is here How to dynamically add a style for text-align using jQuery

Lenardlenci answered 22/3, 2011 at 17:1 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.