【问题标题】:Change the classname of multiple elements of a class [duplicate]更改类的多个元素的类名[重复]
【发布时间】:2017-05-10 18:03:21
【问题描述】:

我有多个类名为“card player1card”的 div。如果我要单击类“player1card”的任何元素,我希望它的类发生变化并让它运行下面列出的功能。

因此,如果我要单击类“card player1card interviewbuilder”的第 5 个元素,则第 5 个元素的类应更改为“card player1card interviewmerchant”或从数组中分配的任何其他随机类名。

它给我的当前错误是“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(); 
    }
}

【问题讨论】:

    标签: javascript classname


    【解决方案1】:

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

    【讨论】:

    • 是“this.classname”javascript吗?还是 JQuery?
    • 这是原生 Javascript
    • 两者都使用。
    • 没关系,明白了,非常感谢:)
    猜你喜欢
    • 2019-07-17
    • 1970-01-01
    • 2014-12-29
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 2021-11-13
    相关资源
    最近更新 更多