Все остальные ответы, которые я обнаружил, только удаляют настройку атрибута, а не атрибут полностью. Я меняю элемент с абсолютного на фиксированное позиционирование. Мне нужно удалить правильный атрибут позиционирования и заменить его на margin-right так, чтобы элемент находился прямо в его родительском DIV. Если правильный атрибут не удаляется, элемент проходит полностью справа от экрана, а не справа от DIV, как мне это нужно. Может ли кто-нибудь предложить предложение о том, как это сделать?
Удалить атрибут CSS с помощью JQuery
Ответ 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');