0

JQuery でいくつかの値を取得したいのですが、width値に関する問題が 1 つあります。私はそれをテストします:

alert($("#j_idt14\\:panelGrid label").parent().attr('id'));
alert("width :" + $("#j_idt14\\:panelGrid label").parent().css("width"));
alert("outerWidth :" + $("#j_idt14\\:panelGrid label").parent().outerWidth());
alert("padding right :" + $("#j_idt14\\:panelGrid label").parent().css("padding-right"));
alert("padding left :" + $("#j_idt14\\:panelGrid label").parent().css("padding-left"));
alert("border right width :" + $("#j_idt14\\:panelGrid label").parent().css("border-right-width"));
alert("border left width :" + $("#j_idt14\\:panelGrid label").parent().css("border-left-width"));

そして私は得る:

j_idt14:universe_login
width :453px
outerWidth :463
padding right :8px
padding left :0px
border right width :1px
border left width :1px

しかし、j_idt14:universe_login id の firebug でこの値を確認すると、次のようになります。

ここに画像の説明を入力

したがって、JQuery によって計算された幅は Firebug と同じではありません...それを説明するアイデアはありますか?

ありがとうございました

4

3 に答える 3

1

jQueryには、幅を計算するための3つのメソッドがあります。

  1. 幅()
  2. innerWidth()
  3. externalWidth()

widthに必要なのはouterWidth()です。

パディングや境界線など、一致した要素のセットの最初の要素について現在計算されている幅を取得します。

于 2012-10-27T10:16:12.413 に答える
0

やだ……みんなごめんね

私のコードは、これらの値を表示して変更した後にコードを実行するだけなので、動作は正しいように見えます。

$("#j_idt14\\:panelGrid label").parent().ready(function(){...}内部に忘れられたコードがいくつかあるのに、値を表示しました$(document).ready(function(){...}

もう一度すみません、問題は解決しました

于 2012-10-27T10:32:39.417 に答える
0

を使用する必要があります.outerWidth()

于 2012-10-27T10:10:33.087 に答える