用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')等等。