0

理論的には、ajax呼び出しから次のHTMLを取得している場合:

<div class="super">
    <span> Some Content </span>
</div>

そしてそれをjqueryオブジェクトでラップすると$data、divは操作に使用できるようになりますが、操作関数呼び出しで挿入するまで、まだDOMに追加されていません。

superリンクされたcssファイルには、 cssクラスの幅と高さの設定があります。

要素が追加されたときの要素の幅と高さを読み取る方法はありますか?

4

5 に答える 5

3

同じクラスで偽の要素を作成し、DOM に挿入し、スタイルを取得して要素を削除するだけです。

var elem = $("<div class='super'></div>"),
    width = elem.appendTo('body').css('width');
    elem.remove();

フィドル

于 2012-08-15T22:34:47.247 に答える
1

いいえ、jquery ではできません。DOM に挿入された後にのみ div から属性を取得できるためです。

于 2012-08-15T22:26:58.343 に答える
1

これを行う最善の方法は、「スーパー」クラスで隠し要素を作成してから使用することです。

var width = $('.super').css('width');
var height = $('.super').css('height');

したがって、次のようなことができます。

var $element = $('<div class="super"><span></span></div>').hide().appendTo("body");
var width = $element.css('width');
var height = $element.css('height');
$element.remove();

おなじみのスレッドがあります: Get a CSS value from external style sheet with Javascript/jQuery .

于 2012-08-15T22:32:27.643 に答える
1

これを行うにはいくつかの方法があります。スタイルシートの値を読みたい場合は、document.styleSheets オブジェクトを調べて、1 つのプロパティを持つ 1 つのスタイルシートのセレクターを見つける必要があります。コードは次のようになります (おそらく、返されるオブジェクト):

<style>
        .super {
            height: 200px;
        }

    </style>
<script>
document.styleSheets[0].cssRules[0].style.height
</script>

または、要素を画面外のどこかに DOM に追加するか (上マージンが -9000px に設定されているコンテナー内など)、または空の要素として追加し、jquery の height() または css() メソッドを使用して追加された要素の高さを取得します。

于 2012-08-15T22:41:28.207 に答える
0

私がやったことは、

<div id="sandbox" style="display:none;">

</div>

表示されなくてもDOMで参照できるようにします。操作が終わったら、好きな場所に移動します。

于 2012-08-15T22:37:41.490 に答える