違いを確認するための例を作成しましたが、幅と高さについて同じ結果が表示されます。
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var div = $('.test');
var width = div.width(); // 200 px
var innerWidth = div.innerWidth(); // 200px
var outerWidth = div.outerWidth(); // 200px
var height = div.height(); // 150 px
var innerHeight = div.innerHeight(); // 150 px
var outerHeight = div.outerHeight(); // 150 px
});
</script>
<style type="text/css">
.test
{
width: 200px;
height: 150px;
background: black;
}
</style>
</head>
<body>
<div class="test"></div>
</body>
</html>
この例では、同じ結果が出力されることがわかります。誰が違いを知っているなら、適切な答えを見せてください。
ありがとう。
コメントで述べたように、 ドキュメント は違いが何であるかを正確に示します。しかし、要約すると:
width =幅を取得、
innerWidth =幅+パディングを取得、
outerWidth =幅+パディング+ボーダー、およびオプションでマージンを取得
テストする場合は、.testクラスにパディング、マージン、境界線を追加して、再試行してください。
また、jQuery docs ...を参照してください。必要なものはほぼすべて揃っています。
値の割り当てについて伝え、jqの「幅」パラメータの意味について比較する必要があるようです(new_valueはpx単位で定義されていると仮定します)
jqElement.css('width',new_value);
jqElement.css({'width: <new_value>;'});
getElementById('element').style.width= new_value;
つの命令は同じ効果を与えません:最初のjquery命令は「幅」ではなく要素の内部幅を定義するためです。これには注意が必要です。
同じ効果を得るには、事前にパディングを計算する必要があります(varがpadであると仮定)、jqueryが純粋なjs(またはcssパラメーター 'width')と同じ結果を得るための正しい命令は次のとおりです
jqElement.css('width',new_value+pads);
また、
var w1 = jqElement.css('width');
var w2 = jqelement.width();
w1は内部幅、w2は幅(css属性の意味)JQ APIのドキュメントには記載されていない違いです。
宜しくお願いします
トレブリー
注:私の意見では、これはバグJQ 1.12.4と見なすことができます。「パラメータ」の背後にはさまざまな意味があるため、.css( 'parameter'、value)の受け入れられたパラメータのリストを明確に紹介する必要があります関心を持っていますが、常に明確でなければなりません。この場合、「innerwidth」は「width」と同じ意味ではありません。次の文を使用して、この問題の追跡を.width(value)のドキュメントに見つけることができます。「最新のブラウザーでは、CSSのwidthプロパティにはパディングが含まれないことに注意してください」