0

コンテキスト: HTML キーでデータ構造を返す ajax リクエストがあります。

このデータを jQuery オブジェクトでラップして、幅/高さなどの API を使用し、DOM に追加する前にデータを変更できるようにしたいと考えています。

> $('<div width="220" height="200"></div>').width()
0

では、220 を取得してから変更するにはどうすればよいでしょうか。

私はjquery 1.7.2を使用しています

編集:

私の例では間違ったタグを使用しているため、私は 90 年代の出身ではありません。レスポンシブ用に iframe の幅と高さを変更する必要があります。

> $('<iframe width="220" height="200"></iframe>').width()
0
4

3 に答える 3

2

要素は、DOM に追加される前は幅がありません。

本当に DOM に含める必要がない場合の解決策は、追加してからデタッチすることです。

var d = $('<div width="220" height="200"></div>');
d.appendTo(document.body);
var w = d.width();
d.detach();

スクリプトがタスクを終了するまで画面は再描画されないため、この操作はユーザーには表示されません。

ただし、別のスタイルがないと、これは 220 を提供しないことに注意してください。おそらくこれが必要です。

$('<div style="width:220px;height:200px;"></div>');

デモンストレーション

于 2012-12-30T15:10:17.280 に答える
1
  1. 誰が?を使用しwidthheight属性を付けているので、あなたは 90 年代の出身である必要があります。div
  2. 「DOMに追加する前」に幅はありません。

3.

$('<div width="220" height="200"></div>').attr('width')
于 2012-12-30T15:11:59.120 に答える
0

使用css:

$('<div></div>').css({ 'width': '220px', 'height': '200px'});

これにより、幅と高さが設定されます。設定しているので、後から幅を取得する必要はありませんよね?ただし、必要に応じてwidth().

編集: 多分私は誤解しました - 質問はあまり明確ではありません. 要素の幅を取得したい場合はwidth機能しますが、前述のように、最初に要素を DOM に追加する必要があります。

于 2012-12-30T15:11:22.453 に答える