0

内部のテキストによって幅が変化し、定期的に変化する ul リスト要素があります。ここで、ul リストの幅を最初のリスト要素 (変化する可能性のあるテキスト) の幅に設定したいと考えています。最初のリスト項目 (#item1) の幅を「取得」し、ul リスト (#myList) の幅を、前述の最初のリスト項目の幅に「設定」したいと考えています。次のコードを試しましたが、うまくいきません。

<script type="text/javascript">
  var width = document.getElementById('item1').offsetWidth;
  document.getElementById('myList').style.width = width;
</script> 

HTML:

<ul id="myList">
  <li id="item1">text1</li>
  <li>text2</li>
  <li>text3</li>
</ul>

助言がありますか?私はjqueryを使用せず、純粋なjavascriptを使用したいと思います...

ありがとう!

4

1 に答える 1

0

これを使用してください..ここでは、ul 要素が #ul であり、list 要素が #list であると想定しています

 var liWidth=document.querySelector('#list').clientWidth;

 // make the width of ul same
 document.querySelector('#ul').style.width=liWidth+'px';

それはうまくいくはずです..そして、JavaScriptをロードする前に必ず要素を作成してください。そうしないと、nullのスタイルプロパティが見つからないというエラーがスローされます

于 2016-11-26T04:14:04.920 に答える