无法使用getelementByClassName

时间:2017-10-19 21:36:19

标签: javascript html html5

我有班级按钮,但没有Id, this is Button Tag ,当我点击那个按钮时我想要任何声音,所以我通过getElementsByClassName调用它并添加了这个功能

var stopMusicExt = document.getElementsByClassName("slide-control-button-next slide-lockable")[0];
stopMusicExt.onclick = function() {
this.pause();
this.currentTime = 0;
}

但每次浏览器显示此错误

未捕获的TypeError:无法设置未定义

的属性'onclick'

我该怎么做才能解决这个问题。请问?

2 个答案:

答案 0 :(得分:1)

另外,不要使用事件属性!使用addEventListener(MDN)作为现代标准:

var stopMusicExt = document.getElementsByClassName("btn cs-button inflexible slide-control-button-next slide-lockable")[0];

stopMusicExt.addEventListener('click', function() {
  this.pause();
  this.currentTime = 0;
});

为明确起见,您可以在按钮元素中添加id属性:

<button id="myButton" class="dtn cs-button inflexible etc">

并使用getElementById()方法访问它

var stopMusicExt = document.getElementById("myButton");

答案 1 :(得分:0)

您的选择器似乎找不到您要查找的类名,因此onclick处理程序没有绑定到您想要的元素。看一下下面的例子:

&#13;
&#13;
var stopMusicExt = document.getElementsByClassName("slide-control-button-next slide-lockable")[0];
stopMusicExt.onclick = function() {
  alert('clicked');
}
&#13;
.slide-control-button-next {
  background: red;
  height: 100px;
  width: 100px;
}
&#13;
<div class="slide-control-button-next slide-lockable">

</div>
&#13;
&#13;
&#13;