0

通常、htmlで作成されたdivがある場合。その幅は、offsetWidth または style.width (宣言されている場合) で確認できます。ただし、divの幅も変更されるようにinnerHTMLが変更された場合、これらの関数はどちらも機能しません(確かではありませんが、私の場合は機能しません)。

いくつかのコード:

var div = document.createElement("div");
div.innerHtml = "asdfasdfasdfasdfsdfasdfasdfad";
alert(div.style.width); // this is nothing
alert(div.offsetWidth); // this is 0

上記のdivの幅をどのように取得しますか?

4

2 に答える 2

3

これは古い質問だと思いますが、Google からここにたどり着いた多くの人のために提供します。

これは、dojo 1.7+ で行う方法です。ジオメトリ モジュールを使用すると、コンテンツの幅を取得および設定できます (パディングやボーダーは含まれません)。これは、ボックスのサイズ変更を無視します。

require(['dojo/dom-geometry'], function(domGeom) {
    var myDivNode = dojo.query('div')[0];
    var contentBox = domGeom.getContentBox(myDivNode);
    alert(contentBox.w);

    // This is how to set width/height
    domGeom.setContentSize(myDivNode, {w: 100, h: 100});
});

ソース: https://dojotoolkit.org/reference-guide/1.7/dojo/contentBox.html

于 2013-10-10T13:58:35.170 に答える
1

ドキュメントに追加されていない要素の幅の値を取得することはできません。

幅を取得できるよりも、ページに追加する必要があります。

ここに動作デモがあります

于 2012-04-06T20:49:09.820 に答える