Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery获取元素的边距大小_Jquery_Css_Html - Fatal编程技术网

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

使用jquery获取元素的边距大小,jquery,css,html,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> ... <

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

有什么想法吗?谢谢。

CSS标签“margin”实际上是四个单独的边距值的缩写,即上/左/下/右。使用css('marginTop'),等等。注意,如果您以这种方式指定它们,它们的末尾将有'px'

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

注意。正如Omaty所指出的,速记“margin”标记的顺序是:
右上-左下
-上面的列表不是按照列表顺序编写的,只是标记中指定的列表

你会想用

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', '')));

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

例如:

<div id="myBlock" style="margin: 10px 0px 15px 5px:"></div>
变量变成“15px”,一个字符串

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

最快的方法是使用本机js方法:

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

明白了,非常感谢:)这太棒了!多谢各位-1当尝试将字符串添加到整数时,这将导致字符串连接。正确答案是。。。。。警报(parseInt($this.parents(“div:.item form”).css(“marginTop”),10));magin属性的正确顺序是:
top right bottom left
Source:Wow,我不知道parseInt('45 gobbledeyBook');结果是45。你疯了@WillMorgan:它可以处理整数部分后的垃圾,但只允许在它之前有空格。请注意,在IE7/8中,如果您的边距没有明确设置为
。css('marginTop')
将返回
auto
,而不是0px。所以当你运行parseFloat或parseInt时,你会得到Nan。@EasyCo:很好。IE7的
margin top
实现通常有缺陷,因此在处理该浏览器时始终值得警惕。
var myMarginTop = $("#myBlock").css("marginBottom");
var myMarginTop = parseInt( $("#myBlock").css("marginBottom") );