使用jquery获取元素的边距大小

时间:2010-11-18 20:59:14

标签: jquery css html

如何使用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"));


});

任何想法?感谢。

4 个答案:

答案 0 :(得分:87)

CSS标签'margin'实际上是四个单独边距值的缩写,上/下/下/右。使用css('marginTop')等 - 请注意,如果您已经指定了那些,那么它们最后会有'px'。

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

  

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

答案 1 :(得分:19)

你想要使用......

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

答案 2 :(得分:9)

例如:

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

在这个js代码中:

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

var变为&#34; 15px&#34;,一个字符串。

如果你想要一个整数,要避免NaN(非数字),有多种方法。

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

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

答案 3 :(得分:6)

来自jQuery's website

  

简写CSS属性(例如保证金,   背景,边框)不受支持。   例如,如果要检索   渲染保证金,使用:   $(elem).css('marginTop')和   $(elem).css('marginRight'),等等。