Добавление и удаление атрибута стиля из div с помощью jquery


103

Я унаследовал проект, над которым работаю, и обновляю некоторые анимации jquery (очень мало практики с jquery).

У меня есть div, из которого мне нужно добавить и удалить атрибут стиля. Вот div:

<div id='voltaic_holder'>

В какой-то момент анимации мне нужно добавить к ней стиль:

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

Я поискал и нашел .removeAttr()метод, но не вижу, как его добавить или даже удаленные части (например, верх: только -75 пикселей).

Спасибо,


$('voltaic_holder').style = nullвозможно? У стилей есть собственное целое дерево объектов. большинство других атрибутов - это просто данные типа ключ = значение.
Marc B,

Ответы:


246

Вы можете сделать любое из следующего

Установите каждое свойство стиля индивидуально:

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

Установите сразу несколько свойств стиля:

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

Удалить определенный стиль:

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

Удалите весь атрибут стиля:

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

Могу ли я добавить более 1 свойства css на строку? Или мне нужно сделать по одному для каждого свойства стиля, например: $("#voltaic_holder").css("position", "relative"); $("#voltaic_holder").css("top", "-75");
ItsPronounced

3
Чтобы ответить на этот вопрос, да, вы можете. Просто используйте литерал объекта в функции .css (). Как $ ('foo'). Css ({'height': '30px', 'width': '50px'});
Ричард Нил Илаган

@AdamAlbrecht Как я могу удалить определенный стиль, который я добавил, потому что в $ ("# voltaic_holder"). RemoveAttr ("style") он удаляет все примененные стили, которые были по умолчанию только что добавленными.
3 правила

21

Чтобы полностью удалить атрибут стиля voltaic_holderдиапазона, сделайте следующее:

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

Чтобы добавить атрибут, сделайте следующее:

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

Чтобы удалить только верхний стиль, сделайте следующее:

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

15

Если вы используете jQuery, используйте css для добавления CSS

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

Чтобы удалить атрибуты CSS

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

Вы не можете удалить атрибут position или top из элемента voltaic_holder, потому что он не имеет атрибутов thos. Это свойства css, определенные в атрибуте style.
Питер Олсон

@ Питер - ох! Отредактировано для использования.css
justkt

10

Самый простой способ справиться с этим (и лучшее решение HTML для загрузки) - это настроить классы, которые имеют стили, которые вы хотите использовать. Тогда просто используйте addClass () и removeClass () или даже toggleClass () .

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

или даже

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


2

В случае использования метода .css в jQuery for ! Важное правило не применяется.

В этом случае мы должны использовать функцию .attr .

Например: если вы хотите добавить стиль, как показано ниже:

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

Вам следует использовать:

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

Надеюсь, это кому-то поможет.


1

Удалите атрибут стиля из div с помощью J-запроса:

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

Добавить стиль в div с помощью J-запроса:

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

Добавить стиль с помощью html:

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

Надеюсь, это будет полезно :)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.