将document.getElementById链接到getElementsByClassName

时间:2015-07-30 22:59:47

标签: javascript jquery class

我有以下功能,我想与一个班级一起工作"暂停"而不是身份证。 我确实看到了一些关于此的主题,但我并不完全明白这是如何工作的。 谢谢!!!

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

正如您可以从名称中猜出的那样,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();
        }
    }
};

即使你只期望一个结果,这就是你应该如何防止错误。