如何使用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"));
});
任何想法?感谢。
答案 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)
简写CSS属性(例如保证金, 背景,边框)不受支持。 例如,如果要检索 渲染保证金,使用: $(elem).css('marginTop')和 $(elem).css('marginRight'),等等。