みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

$("body").height();と$("body").css("

$("body").height();と$("body").css("height");の違い?

jqueryにてbodyの高さを取得し、その数値に適当な値を足すなり引くなりして、他の要素の高さとして指定するということがやりたかったので

$(function() {
var bodyheight = $("body").css("height");
var mainheight = bodyheight-230;
$("#main").css("height",mainheight);
});

とした所、bodyの高さは取得できたのですが、その後が駄目だったので

$(function() {
var bodyheight = $("body").height();
var mainheight = bodyheight-230;
$("#main").height(mainheight);
});

と変更したところ、期待通りに動きました。

この2つの違いを、どなたかお分かりになる方にご教授いただきたいです。

投稿日時 - 2010-05-13 16:54:57

QNo.5892483

困ってます

質問者が選んだベストアンサー

#1です。ちょっと考えが足らなかった。
css('height')だと読み出しも単位付だから設定の前に演算でNGでしたね。

というか、こういう演算目的のために常にピクセル単位で読み出したり設定できるjQuery.heightやjQuery.widthが用意されているのでしょうね。

投稿日時 - 2010-05-13 18:17:57

お礼

.css=px付の値
.height=pxを自動補完してくれる

といった感じでしょうか。
なるほど、だから演算がうまくいかなかったんですね。

ありがとうございました。

投稿日時 - 2010-05-14 13:25:46

このQ&Aは役に立ちましたか?

12人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

jQuery.heightで値を設定するときは単位の省略が許される(pxと解釈)

前者でも単位を付けて
$("#main").css("height",mainheight+'px');
と、すればよかったんじゃないかな。

試してはないので違ったら失礼。

投稿日時 - 2010-05-13 17:08:29

あなたにオススメの質問