プロが教えるわが家の防犯対策術!

$("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つの違いを、どなたかお分かりになる方にご教授いただきたいです。

A 回答 (2件)

#1です。

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

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

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

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

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

お礼日時:2010/05/14 13:25

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



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

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!