0

对不起,我认为这个问题的答案已经发布了,但我已经看过并且我正在努力应用它。

我正在使用 RobG ( https://stackoverflow.com/a/15488590/1490943 )发布的这个 FitText 非库替代方案。这很棒,但我想将它应用于许多元素,而不仅仅是一个。我正在拼凑如何替换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 回答