如何替换子元素的类?

Cal*_*ner 0 html javascript class

我有一段代码,虽然它在其他地方工作得很好,但当我尝试将其应用于子元素时却不起作用。当触发 for 父标签时,我试图简单地替换classListfor元素中的类。这是我的代码:iaddEventListener("mouseover"


    document.getElementById("parentTag").addEventListener("mouseover", function() {
        var elem = document.getElementById("parentTag").getElementsByTagName("i")[0];
        
        elem.classList.replace = ("fal", "fas");
    });

Run Code Online (Sandbox Code Playgroud)

这应该是非常简单的,但由于某种我无法确定的原因,它在这里不起作用。我可以用这个元素做其他事情(例如更改style属性等),但涉及classList( replace, add, remove) 的任何事情都完全失败。不过,我可以调用classList控制台,console.log(elem.classList.value);但无法更改它。

有谁知道如何解决这个问题或者我可能做错了什么?

注意:很抱歉,如果问题有点不清楚,我不知道如何更好地直接描述它。如果您需要澄清,请告诉我。

小智 5

您不小心使用了赋值运算符classList.replace()。它应该是elem.classList.replace("fal", "fas")

document.getElementById("parentTag").addEventListener("mouseover", function() {
     var elem = document.getElementById("parentTag").getElementsByTagName("i")[0];
     elem.classList.replace("fal", "fas");
});
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,就是这样。这是漫长的一天,哈哈... (2认同)