私が持っていると言う:
<div>Some variable amount of text.</div>
div内のテキストの幅(ピクセル単位)を取得するにはどうすればよいですか?
テキストの量はdivごとに予測できないほど変化することに注意してください。
ありがとう!
他の人が提供しているdiv自体ではなく、コンテンツの幅が必要なようです。スパンの幅を測定できるように、内容物をスパンで包む必要があると思います。divは常に可能な限り広くなります。代わりに測定できるコンテンツのサイズに折りたたまれる何かが必要です。
私が見つけた最善の方法は、CSSルールを使用して、指定されたHTML要素"display:inline;"
のみをバインドしてから、 JSメソッドを使用することです。textNode
offsetWidth
<div style="display:inline;" id="gotWidthInPixels" >Some variable amount of text.</div>
<script>
//either:
var widthInPixels= $('#gotWidthInPixels')[0].offsetWidth;
//or
var widthInPixels= document.getElementById("gotWidthInPixels").offsetWidth;
</script>
これにより、HTML要素の正確な幅がピクセル単位で表示されます。
var w = $('div').width()
または、divに他のセレクターを使用します
次のようにwidth()を使用してください。
<div id="mydiv">text text text</div>
<script>
alert( $('#mydiv').width() );
</script>
@mrtshermanに関しては、使用できるテキストだけの幅が必要な場合
var myDiv = $('#myDiv');
//div width
var textWidth = sb.width();
//remove padding and margin from left and right
textWidth -= parseInt(sb.css('padding-left') ) + parseInt(sb.css('margin-left') );
textWidth -= parseInt(sb.css('padding-right') ) + parseInt(sb.css('margin-right') );
jqueryで幅の計算を壊す空白スペースがあるという奇妙な問題がありました。文字列変数と連結、またはJMVCフレームワーク、あるいは単にjQueryが原因であるかどうかは、正確にはわかりません。
ただし、スペースを非ブレークスペースにする
それを解決したようです。それが役立つ場合に備えて、それを捨てるだけです。