当前位置: 代码迷 >> JavaScript >> 将document.getElementById转换为getElementsByClassName
  详细解决方案

将document.getElementById转换为getElementsByClassName

热度:44   发布时间:2023-06-05 11:40:11.0

我具有以下功能,希望使用类“ pause”代替id。 我确实看到了一些与此相关的主题,但是我不太了解如何使用。 谢谢!!!

       function onPlayerReady(event) {
            document.getElementById('pause').onclick = function() {
                youtubePlayer1.pauseVideo();
                youtubePlayer2.pauseVideo();
                youtubePlayer3.pauseVideo();
                e.preventDefault();
            };
        };

使用jQuery,您可以将点击处理程序附加到具有暂停类的所有元素上。

    $(".pause").on("click", function () {
            youtubePlayer1.pauseVideo();
            youtubePlayer2.pauseVideo();
            youtubePlayer3.pauseVideo();
            e.preventDefault();
    });

您可以从名称中猜出, getElementsByClassName()函数可以返回多个(或零个)结果。 这是因为元素ID必须唯一,但是许多不同的元素可以具有相同的类。

因此,您需要做的就是遍历结果并像以前一样添加点击处理程序:

function onPlayerReady(event) {
    var elem = document.getElementById('pause')
    for(var i in elem) {
        elem[i].onclick = function() {
            youtubePlayer1.pauseVideo();
            youtubePlayer2.pauseVideo();
            youtubePlayer3.pauseVideo();
            e.preventDefault();
        }
    }
};

即使您只期望一个结果,这也是您应该采取的措施以防止发生错误。

  相关解决方案