0

申し訳ありませんが、これに対する回答は投稿されていると思いますが、見たところ、適用するのに苦労しています。

RobG ( https://stackoverflow.com/a/15488590/1490943 ) によって投稿された、この FitText 非ライブラリ代替を使用しています。それは素晴らしいことですが、1 つだけでなく、複数の要素に適用したいと考えています。getElementById を置き換える方法をまとめています...

window.onload = function() {
  function doResize() {resize(document.getElementById('d0'), 5);}
  window.onresize = doResize;
  doResize();
}

( http://jsfiddle.net/cgwM4/ )

... getElementsByClassName を使用...

window.onload = function() {
  function doResize() {resize(document.getElementsByClassName('d0')[0], 5);}
  window.onresize = doResize;
  doResize();
}

( http://jsfiddle.net/cgwM4/2/ )

...しかし、特定のクラスだけでなく、そのクラスでタグ付けされたすべての要素をターゲットにする方法がわかりません。そして、以前のMSIEで機能する代替手段があるかどうか疑問に思っています.ClassNameを使用せずに、そのクラスですべてを取得する方法です。

無知で本当に申し訳ありません。当たり前のことですが、どこから始めればよいかわかりません... ご覧いただきありがとうございます。

4

1 に答える 1

3

あなたがしなければならないのは、それらをループすることだけです:

function doResize() {
    var qsa = document.querySelectorAll(".d0"), l = qsa.length, i;
    for( i=0; i<l; i++) resize(qsa[i],5);
}

querySelectorAll代わりに使用したことに注意してくださいgetElementsByClassName-これにより、IE8でのサポートが有効になります。それよりも古いものが本当に必要な場合は、name代わりに属性を使用することをお勧めします。古い IE でもgetElementsByName.

于 2013-08-30T16:12:08.360 に答える