Удалить атрибут CSS с помощью JQuery

Все остальные ответы, которые я обнаружил, только удаляют настройку атрибута, а не атрибут полностью. Я меняю элемент с абсолютного на фиксированное позиционирование. Мне нужно удалить правильный атрибут позиционирования и заменить его на margin-right так, чтобы элемент находился прямо в его родительском DIV. Если правильный атрибут не удаляется, элемент проходит полностью справа от экрана, а не справа от DIV, как мне это нужно. Может ли кто-нибудь предложить предложение о том, как это сделать?

Ответ 1

Попробуйте установить его значение по умолчанию auto

$(element).css('right', 'auto');

Ответ 2

$('div').css({'right' : '', 'margin-right' : '100px'});

Если это не работает, попробуйте установить его значение по умолчанию auto

Ответ 3

На мой взгляд, самый чистый способ - полностью удалить свойство из элемента CSSStyleDeclaration, вместо того чтобы просто переписать его каким-то образом значения null/zero/default:

$(".foo").prop("style").removeProperty("right");
$(".foo").prop("style").removeProperty("background-color");

Ответ 4

Попробуйте установить right на 0px, а затем установите margin-right.

$('div').css({'right' : '0px', 'margin-right' : '100px'});

Ответ 5

Вы можете попробовать следующий код

        $.fn.removeCss=function(toDelete) {

            var props = $(this).attr('style').split(';');
            var tmp = -1;

            for( var p=0; p<props.length; p++) {
                if(props[p].indexOf(toDelete) !== -1 ) {
                    tmp=p
                }
            }

            if(tmp !== -1) {
                props.splice(tmp, 1);
            }

            return $(this).attr('style',props.join(';'));
        }

example usage:
$(selector).removeCss('color');