2

以下のリンクをご覧ください。

http://jsfiddle.net/YJMrE/

HTML:

<div id="test">
    <div id="test1">test 1</div>
    <div id="test2">test 2</div>
</div>

Javascript:

$(document).ready(function(){
    $("#test").hide();
    alert($("#test").height());
    alert(document.getElementById("test").getBoundingClientRect().height);
});

jqueryだけで非表示のdivの高さを取得するにはどうすればよいですか? ありがとう!

4

5 に答える 5

1

これをスクリプトに使用します。

$(document).ready(function(){
    var x = document.getElementById("test").getBoundingClientRect().height;
    $("#test").hide();
    alert($("#test").height());
    alert(x);
});
于 2013-03-14T07:15:31.297 に答える
1

プレーンな JavaScript では、次のようなことができ、動作するはずです。

// $("#test").hide();
// alert($("#test").height());

var el = document.getElementById("test");
el.style.position = 'absolute';
el.style.visibility = 'hidden';

alert(el.offsetHeight); // 40

jQuery はおそらく別の方法で魔法をかけてくれます。で隠しオブジェクトの寸法を取得するのは信頼できませんdisplay: none

編集:ディメンションを処理するjQuery コードは次のとおりです。いくつかのドットを接続する必要がありますが、それほど複雑ではないようです。

于 2013-03-14T07:17:00.793 に答える
1

を使用して div の高さを取得できます。

$('#test1').height();
$('#test2').height();

height() 関数は、指定された要素の高さを計算します。

于 2013-03-14T07:17:43.367 に答える
1

他の回答からはあまり得られず、同じことを知りたいと思って、jQuery 3.0.0-pre source で関連する行を見つけました。

これらのプロパティは、有用なものが返されない場合、または返されない場合、この swap 関数を使用して要素に一時的に追加されます。getClientRects()getBoundingClientRect()

{ position: "absolute", visibility: "hidden", display: "block" }

次に、幅を取得するために呼び出しますval = elem.getBoundingClientRect()[ name ];(127 行目 - 3.0.0-pre)。

于 2015-10-18T04:43:16.550 に答える
0

違いに注意してください: http://jsfiddle.net/YJMrE/5/

Jquery はそれを非表示にするため、非表示にする前の非表示要素の高さを認識します。

JavaScript は単純に現在の高さを返しますが、

$(document).ready(function(){        
    alert(document.getElementById("test").getBoundingClientRect().height); // 40
    $("#test").hide();    
    alert(document.getElementById("test").getBoundingClientRect().height); // 0
});
于 2013-03-14T07:19:19.713 に答える