辩解 - 最佳方法

时间:2013-07-31 23:50:33

标签: javascript justify

不支持webkit浏览器“ruby of justify”。

我发现了这个javascript(https://code.google.com/p/justify/)。

由于使用了这个问题,出现了一个新问题......

 <ul id="list">
  <li>
   <h3 id="main"><ruby>Lorem<rt id="sub">Ipsum</rt></ruby></h3>
   <p>Lorem ipsum dolor sit amet...... </p>
  </li>
 </ul>

这很好。但是这个脚本使用了“document.getElementById”。

当元素增加时,当然,它不起作用。

当我将“document.getElementById”重写为“document.getElementsByClass”时,Uncaught TypeError: Object #<NodeList> has no method ...

当元素增加时,我该怎么办?

(抱歉......我不擅长英语)

1 个答案:

答案 0 :(得分:1)

Uncaught TypeError: Object #<NodeList> has no method...

发生此错误是因为您尝试将节点列表视为单个节点。可能是因为您忘记从getElementsByClassName的结果中获取元素。

getElementById返回单个DOM元素,但getElementsByClassName返回DOM元素的列表(类似数组的对象)。你必须索引后者,而不是前者。

<div class="foo" id="bar"></div>

<script>
alert(
    document.getElementById('bar')   // One result at most, so no [0].
    ===
    // ClassName, not Class.  [0] since the result is a list.
    document.getElementsByClassName('foo')[0]
);
</script>

应提醒“真实”