下面的代碼工作(警報彈出):getElementsByClassName方法不工作,但的getElementById是
var sound = document.getElementById("music");
sound.addEventListener("play", function() {
alert("playing");
});
....
....
<audio controls id="music">
<source src="http://upload.wikimedia.org/wikipedia/commons/c/c8/Example.ogg"/>
</audio>
但爲什麼這個不行?
var sound = document.getElementsByClassName("music");
sound.addEventListener("play", function() {
alert("playing");
});
....
....
<audio controls class="music">
<source src="http://upload.wikimedia.org/wikipedia/commons/c/c8/Example.ogg"/>
</audio>
這不工作,要麼萬一getElementsByClassName方法返回不同的東西比的getElementById:
('.sound').addEventListener("play", function() {
alert("playing");
});
....
....
<audio controls class="music">
<source src="http://upload.wikimedia.org/wikipedia/commons/c/c8/Example.ogg"/>
</audio>
我所改變的是一個ID而不是,我給它一個類(因爲我有多個實例這個音頻播放器),並使用getElementsByClassName而不是getElementById。我認爲getElementsByClassName現在與所有瀏覽器兼容?我正在使用最新的Firefox。
'getElementById'返回一個元素,'getElementsById'返回'NodeList'對象,即它基本上是一個元素數組。在另一個問題上查看更新的答案。 – ultranaut 2013-03-03 02:07:46
本應該是「'getElemensByClassName''返回'NodeList'」。 – ultranaut 2013-03-03 02:20:29
可能重複[什麼getElementsByClassName返回?](http://stackoverflow.com/questions/10693845/what-does-getelementsbyclassname-return) – Bergi 2015-10-29 10:10:25