Dodawanie i usuwanie atrybutu style z div za pomocą jquery


103

Odziedziczyłem projekt, nad którym pracuję i aktualizuję niektóre animacje jquery (bardzo mało ćwiczeń z jquery).

Mam element div, który muszę dodać i usunąć atrybut stylu. Oto div:

<div id='voltaic_holder'>

W pewnym momencie animacji muszę dodać do niej styl:

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

Szukałem dookoła i znalazłem .removeAttr()metodę, ale nie widzę, jak ją dodać, ani nawet odległych części (takich jak góra: tylko -75px).

Dzięki,


$('voltaic_holder').style = nullbyć może? Style mają własne całe drzewo obiektów. większość innych atrybutów to po prostu dane typu klucz = wartość.
Marc B

Odpowiedzi:


246

Możesz wykonać dowolną z następujących czynności

Ustaw każdą właściwość stylu indywidualnie:

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

Ustaw wiele właściwości stylu jednocześnie:

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

Usuń określony styl:

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

Usuń cały atrybut stylu:

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

Czy mogę dodać więcej niż 1 właściwość CSS w każdym wierszu? Czy też muszę zrobić po jednym dla każdej właściwości stylu, jak na przykład: $("#voltaic_holder").css("position", "relative"); $("#voltaic_holder").css("top", "-75");
JegoPronounced

3
Aby odpowiedzieć na to pytanie, tak, możesz. Po prostu użyj literału obiektu w funkcji .css (). Na przykład $ ('foo'). Css ({'height': '30px', 'width': '50px'});
Richard Neil Ilagan,

@AdamAlbrecht Jak mogę usunąć określony styl, który dodałem, ponieważ w $ ("# voltaic_holder"). RemoveAttr ("style") usuwa cały zastosowany styl, który był domyślnie z nowo dodanym.
3 zasady

21

Aby całkowicie usunąć atrybut stylu voltaic_holderrozpiętości, wykonaj następujące czynności:

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

Aby dodać atrybut, wykonaj następujące czynności:

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

Aby usunąć tylko górny styl, wykonaj następujące czynności:

$("#voltaic_holder").css("top", "");

15

Jeśli używasz jQuery, użyj css, aby dodać CSS

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

Aby usunąć atrybuty CSS

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

Nie można usunąć pozycji ani atrybutu top z elementu voltaic_holder, ponieważ nie ma on tych atrybutów. Są to właściwości css zdefiniowane w atrybucie style.
Peter Olson,

@Peter - doh! Zmieniony do użytku.css
justkt

10

Najłatwiejszym sposobem poradzenia sobie z tym (i najlepszym rozwiązaniem HTML do rozruchu) jest skonfigurowanie klas, które mają style, których chcesz używać. Wtedy wystarczy użyć addClass () i removeClass () , a nawet toggleClass () .

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

lub nawet

$('#voltaic_holder').toggleClass('shiny dull');


2

W przypadku metody .css w jQuery dla ! Ważna reguła nie będzie miała zastosowania.

W tym przypadku powinniśmy użyć funkcji .attr .

Na przykład: jeśli chcesz dodać styl, jak poniżej:

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

Powinieneś użyć:

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

Mam nadzieję, że to komuś pomoże.


1

Usuń atrybut stylu z div za pomocą zapytania J:

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

Dodaj styl do div za pomocą zapytania J:

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

Dodaj styl za pomocą html:

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

Mam nadzieję, że to pomoże :)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.