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

lau*_*kok 48 html css jquery

如何使用jquery获取元素的属性?我想特别得到div的边距大小.

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

.item-form {
  margin:0px 0px 10px 0px;
  background: blue;
}
Run Code Online (Sandbox Code Playgroud)

HTML,

<form>
...

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

...

</form>
Run Code Online (Sandbox Code Playgroud)

我尝试使用此代码,但显然失败了,

$(".autohide").each(function(){

var $this = $(this);
alert($this.parents("div:.item-form").css("margin"));


});
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢.

Orb*_*ing 90

CSS标签'margin'实际上是四个单独边距值的缩写,上/左/下/右.使用css('marginTop')等 - 请注意,如果你这样指定它们,它们最后会有'px'.

使用parseInt()结果将其转换为数字值.

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

  • 哇,我不知道那个parseInt('45 gobbledeygook'); 屈指可数45. JavaScript,你疯了! (29认同)
  • 请注意,在IE7/8中,如果您的保证金未明确设置为`.css('marginTop')`将返回`auto`而不是0px.所以当你运行parseFloat或parseInt时,你会得到**Nan**. (6认同)
  • @WillMorgan:它在整数部分之后很好地处理垃圾,但只允许在它之前的空格. (3认同)

Web*_*net 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', '')));
Run Code Online (Sandbox Code Playgroud)

  • 正确的答案是..... alert(parseInt($ this.parents("div:.item-form").css("marginTop"),10)); (6认同)
  • -1这会在尝试将其添加到整数时导致字符串连接. (3认同)

Jor*_*dan 11

例如:

<div id="myBlock" style="margin: 10px 0px 15px 5px:"></div>
Run Code Online (Sandbox Code Playgroud)

在这个js代码中:

var myMarginTop = $("#myBlock").css("marginBottom");
Run Code Online (Sandbox Code Playgroud)

var变为"15px",一个字符串.

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

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

var myMarginTop = parseInt( $("#myBlock").css("marginBottom") );
Run Code Online (Sandbox Code Playgroud)


Mat*_*son 6

来自jQuery的网站

不支持速记CSS属性(例如边距,背景,边框).例如,如果要检索渲染边距,请使用:$(elem).css('marginTop')和$(elem).css('marginRight'),依此类推.