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

我build立一个可拖动的地图,当地图拖动时,元素被赋予一个“左”和“顶”属性,每个值都是这样的。

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

我有一个button,我想要删除顶部和左侧属性从div上的内联样式点击时,这是可能的jQuery的?

CSS topleft的默认值是auto ,所以根据你想要做的事情设置它们可能是等价的:

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

您也可以select完全删除style属性:

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

但是,如果您使用的是其他jQuery UI组件,那么这些组件可能需要内联样式,而您不想将其移除,因此请谨慎操作。

如果要专门删除顶部和左侧属性并保留其他属性,可以这样做:

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

或者,更短的等价物:

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

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

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

你可以通过下面的方式删除特定的style

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

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

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

查看关于CSS的jQuery文档 。

  1. 去这里: jQuery API
  2. Ctrl + F为“删除”
  3. 读:

将样式属性的值设置为一个空string,例如$(“#mydiv”).css(“color”,“”) – 将该属性从元素中移除(如果已经直接应用),无论是HTML样式属性,通过jQuery的.css()方法,或者通过对style属性的直接DOM操作。

文档为您提供了当前推荐的方法,通常可以节省您的时间,因为您不必在堆栈溢出中来回读取火焰战争(无论多么有趣/有启发性的东西!)。

根据这个JQuery错误报告

  element.removeAttr( '风格') 

在基于Webkit的浏览器中不一致。 例如,我在iOS 6.1上遇到了这个问题。 解决的办法是使用:

  element.attr('style','') 

如果你想删除所有它可以做

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

那么如果你想删除css道具(s):

  $('#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( '颜色')。

有一些不容易删除的风格(溢出想到)

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

不是可以轻松删除/禁用的样式属性的最佳解决scheme。

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

删除CSS样式将空string分配给样式

在这种情况下

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

在我看来,最简洁的方法是从元素的CSSStyleDeclaration中完全删除属性,而不是用某种空/零/默认值覆盖它:

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