2

HTMLにこれがあります(動的に追加されたり、そのようなものではありません):

<div id="TEST" style="width:600px; height:300px;"></div>

そして私がこれを行うとき:alert(jQuery("#TEST").width());

... IE で 1280 を警告します! Chrome で 600 という警告が表示されます。何が問題になっているのでしょうか?

適用されるスタイルは次のとおりです。

ここに画像の説明を入力

EDIT 私はこれを試してみましたが、それでも1280です...

jQuery("#TEST").width(600);
alert(jQuery("#TEST").width());

もう一度編集

さて、jQuery の実装を調べてみましたが、これは、この if ステートメントから true を返しているためです。

if ("scrollTo" in elem && elem.document) ? // does it walk and quack like a window?

なぜ私のdivは「窓のように歩いたり鳴いたりする」のですか?

4

2 に答える 2

4

スタイルがどこから来ているかを確認するには、レンダリングされたコンポーネントを表示する必要がありますが、について読む必要がありますouterWidth

http://api.jquery.com/outerWidth/

編集: 更新されたスクリーンショットを確認したら、要素をブロック レベルまたはインライン ブロック レベルにする必要があります。インライン要素の幅を設定すると、要素の配置に基づいて変化するため、望ましい結果が得られません。

インライン要素とブロック要素の詳細: http://www.w3.org/TR/html401/struct/global.html#h-7.5.3

PS。a がブロック要素であることは知っていdivますが、コード内の何かがそれをインラインに強制していますか?

于 2012-06-01T15:14:53.233 に答える
1

多分CSS幅を取得しますか?

alert($("#TEST").css("width"));
于 2012-06-01T15:17:03.497 に答える