2

基本的な質問。

document.getElementById("yy").onmouseover = hi;
//document.getElementsByTagName("li").onmouseover = hi;
...

この例では、http://jsfiddle.net/8fURz/1/なぜ最初の行は機能しますが、2番目の行は機能しません(もちろんコメントがない場合)?

私はjQueryでこれを簡単に行うことができることを知っています、ただ疑問に思っています...

4

2 に答える 2

3

document.getElementsByTagName("li")を返すためNodeList、イベントハンドラーをのすべての要素にバインドする必要がありますNodeList

var list = document.getElementsByTagName("li");
for (var i= 0; i < list.length; i++) {
  list[i].onmouseover = hi;
}
于 2012-08-27T01:45:02.380 に答える
1

getElementsByTagNameはDOM要素のコレクションを返すためです。もちろん、コレクションにはクリックイベントはありません。コレクション内のすべての要素にイベントをバインドする場合は、コレクションをループして、コレクション内のすべてのDOM要素にハンドラーを追加するだけです。

于 2012-08-27T01:46:03.817 に答える