【问题标题】:Remove class of an element in Javascript using replace function使用替换函数删除Javascript中元素的类
【发布时间】:2016-04-26 19:46:14
【问题描述】:

我尝试了一种在 JavaScript 中删除元素类的方法,但没有成功,请大家解释一下原因。

function del() 
{
cross.className.replace("anim"," ");
}

cross 是保存在变量中的元素。

【问题讨论】:

标签: javascript


【解决方案1】:

字符串replace() 方法返回具有新值的新字符串。它不修改原始字符串。

这是一个简单的例子:

var str = "Hello World!";
var res = str.replace("World", "Foo");

console.log(str);  // prints Hello World!
console.log(res);  // prints Hello Foo!

因此,在您的具体情况下,为了使其正常工作,您必须将新字符串分配给 cross.className,如下面的代码所示:

cross.className = cross.className.replace("anim"," ");

【讨论】:

    【解决方案2】:

    如果您不必支持非常旧的浏览器,也可以使用classList 属性:

    cross.classList.remove("anim");
    

    创建自己的添加、删除和替换类的方法很容易出错。例如:当另一个类包含子字符串"anim"时会发生什么?通过使用 Element 类中现成的方法,您的工作会轻松很多。

    更多关于类列表:https://developer.mozilla.org/en/docs/Web/API/Element/classList

    【讨论】:

      【解决方案3】:

      您需要将值分配给类,因为替换返回新字符串与替换文本

      function del() {
          cross.className = cross.className.replace("anim"," ");
      }
      

      【讨论】:

        【解决方案4】:

        您可以使用 jQuery 通过其 id 从特定元素中删除类

        $("#cross").removeClass("anim");
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-04-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-03-22
          • 2010-09-05
          • 1970-01-01
          相关资源
          最近更新 更多