使用 jQuery 删除 CSS 的“ top”和“ left”属性

我建立一个可拖动的地图,当地图被拖动时,元素被赋予一个“左”和“顶”属性,每个属性的值如下..。

<div class="map" style="top:200px; left:100px;">Map</div>

我有一个按钮,我想删除顶部和左边的属性从内联样式的 div 时,单击,这可能与 jquery?

243245 次浏览

如果你想删除所有的,你可以这样做

$('.map').removeAttr('style');

如果您想特别删除 top 和 left 属性并保留其他属性,可以这样做:

$('.map').css('top', '').css('left', '');

或者,一个更短的等价物:

$('.map').css({
'top': '',
'left': ''
});

您可以通过以下操作删除 style属性中的所有内容:

$('.map').removeAttr('style');

你可以通过以下方法移除特定的 style:

$('.map').css('top', '');
$('.map').css('left', '');

只需使用空字符串设置 CSS 属性,例如使用以下代码:

$('#mydiv').css('color', '');

参见 关于 CSS 的 jQuery 文档

CSS topleft的默认值是 auto,因此将它们设置为 auto可能是等效的,这取决于您尝试执行的操作:

$('.map').css('top', 'auto').css('left', 'auto');

您还可以选择完全删除 style属性:

$('.map').removeAttr('style');

但是,如果您正在使用其他 jQuery UI 组件,那么这些组件可能需要内联样式,而您不希望删除这些样式,因此在这方面要小心。

每个 这个 JQuery 错误报告

RemoveAttr (‘ style’)
在基于 Webkit 的浏览器中不能始终如一地工作。例如,我在 iOS 6.1上遇到过这个问题。修复方法是使用:
Attr (‘ style’,”)

$.fn.removeCss=function(prop){
if(!prop){
return $(this).removeAttr('style').removeAttr('class');
}
else{
return $(this).css(prop,null);
}


}

然后,如果你想删除 css 道具:

    $('#mydiv').removeCss('color');
//To remove all prop Css
$('#mydiv').removeCss();
$.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){


delete props[tmp];
}


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


}

用这个插件安全地删除!

$(‘ myDiv’) . RemoveCss (‘ color’) ;

有一些样式不容易删除

一个解决方案是创建两个不同的类,并添加/删除包含您想要的样式的类。

对于容易删除/禁用的样式属性来说,这不是最好的解决方案。

  1. 到这里: JQuery API
  2. Ctrl + F 表示“删除”
  3. 阅读:

将样式属性的值设置为空字符串ーー例如 $( Css (“ color”,“”)ーー从元素中删除该属性 如果它已经被直接应用,无论是在 HTML 样式 属性,通过 jQuery 的. css ()方法,或者通过直接 DOM 样式属性的操作。

这些文档为你提供了当前推荐的方法,可以帮你节省时间,因为你不必反复阅读堆栈溢出的争论(不管这有多么有趣/有启发性).

 $("#map").css("top", "0");
$("#map").css("left", "0");

要删除 css 样式,请为样式分配一个空字符串

在这种情况下

$('.map').css({top:'',left:''});

在我看来,最干净的方法是从元素的 CSSStyleDeclaration中完全删除该属性,而不是仅仅用某种 null/zero/default 值覆盖它:

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