Я изменяю CSS с помощью jQuery и хочу удалить стиль, который добавляю, основываясь на входном значении:
if(color != '000000') $("body").css("background-color", color); else // remove style ?
Как я могу это сделать?
Обратите внимание, что строка выше проходит всякий раз, когда цвет выбирается с помощью палитры цветов (т. Е. Когда мышь перемещается над цветовым кругом).
2-е примечание: я не могу сделать это, css("background-color", "none")
потому что он удалит стиль по умолчанию из файлов CSS .
Я просто хочу удалить background-color
встроенный стиль, добавленный jQuery .
Ответы:
Изменение свойства на пустую строку, кажется, делает работу:
источник
Принятый ответ работает, но оставляет пустой
style
атрибут на DOM в моих тестах. Ничего страшного, но это удаляет все это:Предполагается, что вы хотите удалить все динамические стили и вернуться к стилю таблиц стилей.
источник
Есть несколько способов удалить свойство CSS с помощью jQuery:
1. Установка свойства CSS в его значение по умолчанию (начальное)
См. Начальное значение свойства CSS в MDN . Здесь значением по умолчанию является
transparent
. Вы также можете использоватьinherit
несколько свойств CSS для наследования атрибута от его родителя. В CSS3 / CSS4, вы можете также использоватьinitial
,revert
или ,unset
но эти ключевые слова могут иметь ограниченную поддержку браузера.2. Удаление свойства CSS
Пустая строка удаляет свойство CSS, т.е.
Но будьте осторожны, как указано в документации jQuery .css () , это удаляет свойство, но у него есть проблемы совместимости с IE8 для некоторых свойств сокращения CSS, включая фон .
3. Удаление всего стиля элемента
источник
Я получил способ удалить атрибут стиля с помощью чистого JavaScript, чтобы вы знали, как использовать чистый JavaScript
источник
Это удалит полный тег:
источник
любая из этих функций jQuery должна работать:
источник
var cssObject = $('selector').prop('style'); cssObject.removeProperty('background-color');
Просто используя:
или
источник
Как насчет чего-то вроде:
источник
Используйте мой плагин:
Для вашего случая используйте его следующим образом:
или
если вы хотите удалить также CSS, определенный в его классах:
источник
$(this).removeAttr
избыточно иthis.removeAttr
должно быть достаточно.removeAttr
такжеclass
attr? я так не думаюremoveAttr
вашем плагине, гдеthis
уже есть элемент jQuery.$(this)
избыточноthis
какHTMLElement
экземпляр, сопоставленный с элементом jQuery ... Как вы видите, мой ответ старый ... вот почему ... в любом случае, я могу сказать вам, почему они это изменяют, они делают это из-за функции стрелки, которая появилась в ES6. .. иthis
становится бесполезным, и его заменилиevent.currentTarget
Попробуй это:
Спасибо
источник
Если вы используете стиль CSS, вы можете использовать:
и затем заменить на:
Если вы не используете стиль CSS и у вас есть атрибут в элементе HTML, вы можете использовать:
источник
2018
для этого есть собственный API
источник
Этот тоже работает !!
источник
Почему бы не сделать стиль, который вы хотите удалить класс CSS? Теперь вы можете использовать:
.removeClass()
. Это также открывает возможность использования:.toggleClass()
(удалите класс, если он есть, и добавьте его, если его нет.)
Добавление / удаление класса также менее запутанно для изменения / устранения неполадок при работе с проблемами компоновки (в отличие от попытки выяснить, почему исчез конкретный стиль).
источник
источник
Это более сложно, чем некоторые другие решения, но может предложить большую гибкость в сценариях:
1) Создайте определение класса, чтобы изолировать (инкапсулировать) стиль, который вы хотите применять / удалять выборочно. Может быть пустым (и для этого случая, вероятно, должно быть):
2) используйте этот код, основываясь на http://jsfiddle.net/kdp5V/167/ из этого ответа от gilly3 :
Пример использования: http://jsfiddle.net/qvkwhtow/
Предостережения:
Таким образом, CSS - это изоляция стиля, даже если это не манипулирование. Манипулирование правилами CSS - это НЕ то, чем занимается jQuery, jQuery манипулирует элементами DOM и использует селекторы CSS для этого.
источник
Просто дешево в веб-разработке. Я рекомендую использовать пустую строку при удалении определенного стиля
источник
Попробуй это
источник