用jQuery获取元素的边距大小

我怎样才能得到一个元素与jQuery的属性? 我想特别获得div边距的大小。

我已经在.css文件中设置了div的样式,例如,

.item-form { margin:0px 0px 10px 0px; background: blue; } 

的HTML,

 <form> ... <div class="item-form"> <textarea class="autohide"></textarea> </div> ... </form> 

我试着用这个代码,但是显然失败了,

 $(".autohide").each(function(){ var $this = $(this); alert($this.parents("div:.item-form").css("margin")); }); 

有任何想法吗? 谢谢。

CSS标签“边距”实际上是四个单独的边距值(上/左/下/右)的缩写。 使用css('marginTop')等 – 注意,如果你已经指定了它们,那么它们将会有'px'。

在结果周围使用parseInt()将其转换为数字值。

NB。 正如Omaty所指出的,简写“margin”标签的顺序是: top right bottom left – 上面的列表不是以列表顺序的方式写的,只是标签中指定的列表。

你会想要使用…

 alert($this.parents("div:.item-form").css("marginTop").replace('px', '')); alert($this.parents("div:.item-form").css("marginRight").replace('px', '')); alert($this.parents("div:.item-form").css("marginBottom").replace('px', '')); alert($this.parents("div:.item-form").css("marginLeft").replace('px', '')); 

例如:

 <div id="myBlock" style="margin: 10px 0px 15px 5px:"></div> 

在这个JS代码中:

 var myMarginTop = $("#myBlock").css("marginBottom"); 

var变成“15px”,一个string。

如果你想要一个Integer,为了避免NaN(不是数字),有多种方法。

最快的是使用原生js方法:

 var myMarginTop = parseInt( $("#myBlock").css("marginBottom") ); 

从jQuery的网站

不支持简写CSS属性(例如页边距,背景,边框)。 例如,如果要检索呈现的边距,请使用:$(elem).css('marginTop')和$(elem).css('marginRight')等等。