LoginSignup
2
2

More than 5 years have passed since last update.

.append()する前の要素の幅や高さを取得する

Last updated at Posted at 2016-05-20

jQueryの仕様上、DOMはHTMLで表示されているものでないと幅や高さなどが取れないようです。

したがって、.append().appendTo()などでDOMを挿入する前に要素の高さを取得しても0になります。ナンテコッタ

test.js

let $obj = $('<h1></h1>');
$obj.text('こんばんは!');

// ここで高さをとっても0
console.log($obj.height());

$obj.appendTo($('body'));

取得方法

高さなどを取りたいときは、挿入する要素(例だと$obj)に対し.ready()で要素が反映された後に処理をすると書くのがスマートそうでした。

test.js

let $obj = $('<h1></h1>');

$obj.text('こんばんは!');

// ここで高さをとっても0
console.log($obj.height());

$obj.appendTo($('body'));

$obj.ready( () => {
  // ここでなら高さが取れる!
  console.log($obj.height());
});


取得例

取得例

余談

chromeの開発者ツールで実行したらjQueryがちゃんと動いて「こんばんは!」が怖い事になってたw
スクリーンショット 2016-05-21 0.01.19.png

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2