Получить размер поля элемента с jquery
Как я могу получить свойства элемента с jquery? Я хочу получить размер поля div в частности.
Я установил стиль div в файле .css, например,
.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"));
});
любые идеи? спасибо.
Ответы
Ответ 1
"margin" тега CSS на самом деле является сокращением для четырех отдельных значений маржи, верхнего/левого/нижнего/правого. Используйте css('marginTop')
и т.д. - обратите внимание, что они будут иметь "px" на конце, если вы указали их таким образом.
Используйте parseInt()
вокруг результата, чтобы включить его в числовое значение.
NB. Как отметил Омати, порядок стенографического метка "margin": top right bottom left
- приведенный выше список не был написан таким образом, чтобы он был списком, только список, указанный в тег.
Ответ 2
Вы хотите использовать...
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', ''));
Ответ 3
Например, для:
<div id="myBlock" style="margin: 10px 0px 15px 5px:"></div>
В этом js-коде:
var myMarginTop = $("#myBlock").css("marginBottom");
var становится "15px", строкой.
Если вы хотите Integer, чтобы избежать NaN (Not a Number), существует несколько способов.
Самый быстрый способ - использовать собственный метод js:
var myMarginTop = parseInt( $("#myBlock").css("marginBottom") );
Ответ 4
От сайт jQuery
Сокращенные свойства CSS (например, маржа, фон, граница) не поддерживаются. Например, если вы хотите получить предоставленный запас, используйте: $(elem).css('marginTop') и $(elem).css('marginRight') и т.д.