更改 class 多个元素的名称 class

Change the classname of multiple elements of a class

我有多个 div,class名称为 "card player1card"。如果我要单击带有 class "player1card" 的任何元素,我希望它的 class 更改为 运行 下面列出的功能。

因此,如果我单击带有 class "card player1card recruitbuilder" 的第 5 个元素,第 5 个元素的 class 应更改为 "card player1card recruitmerchant" 或任何其他随机 class从数组中分配的名称。

它给我的当前错误是"Uncaught TypeError: Cannot set property 'className' of undefined"

注意:所有变量都已事先定义,因此不会遗漏任何变量。

var p1card = document.getElementsByClassName("player1card");
var w;
var allocatedcard;

for (w = 0; w < p1card.length; w++) {
    p1card[w].onclick = function (){
        p1card[w].className = "card player1card";
        var allocatedcard = Math.floor(Math.random() * cardsnames.length);
        p1card[w].className += " " + cardsnames[allocatedcard];
        updateimages(); 
    }
}

在您的点击处理程序中使用 this.className 而不是 p1card[w].className