htmlファイルに記載してあるaaaaaaaの文字列の幅を取得したいです。
javascriptでこのように記載すると0という数字が出てきてうまく取得ができません。
ネットで調べたらgetElementById()を使った手法は多く見られた。
html
1(省略) 2<p>aaaaaaa</p> 3(省略)
javascript
1var r = document.getElementById("id")[0].clientWidth; 2console.log(w);
document.getElementsByTagName("p")[0]は、本当に<p>aaaaaaa</p>を指していますか?
JavaScriptを質問タグとして追加してください。
あと、clientWidthはどこで参考にしましたか?
ちなみに現状のコードだけだと「実行時の(ブラウザの)幅」が出ます。
0にはならなかったので、他のHTMLやcssが影響しているのでは?
getElementsByTagNameもgetElementByIdも取得結果がリストか要素単体かだけでそんな大きな違いはないです。
あと「文字の幅」の定義を明確にされたほうが良いです。
どういう情報に対してどういう結果を求めたいのか。
clientWidthだと「要素の幅」になるので、ブラウザに対して100%の幅を持っていればブラウザの幅とイコールになり、中の文字は関係ない結果がでます。
>https://www.w3schools.com/jsref/prop_element_clientwidth.asp
「要素の幅」です。そこからTry it Yourself ボタンで色々試せます。
https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_element_clientheight
#myDIVのcssを調整して再度Run→Try itしてみてください。
あくまで要素の幅が返ってきます。「(私が文章から解釈している)文字の幅」にはなりません。