【发布时间】:2016-04-26 19:46:14
【问题描述】:
我尝试了一种在 JavaScript 中删除元素类的方法,但没有成功,请大家解释一下原因。
function del()
{
cross.className.replace("anim"," ");
}
cross 是保存在变量中的元素。
【问题讨论】:
标签: javascript
我尝试了一种在 JavaScript 中删除元素类的方法,但没有成功,请大家解释一下原因。
function del()
{
cross.className.replace("anim"," ");
}
cross 是保存在变量中的元素。
【问题讨论】:
标签: javascript
字符串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"," ");
【讨论】:
如果您不必支持非常旧的浏览器,也可以使用classList 属性:
cross.classList.remove("anim");
创建自己的添加、删除和替换类的方法很容易出错。例如:当另一个类包含子字符串"anim"时会发生什么?通过使用 Element 类中现成的方法,您的工作会轻松很多。
更多关于类列表:https://developer.mozilla.org/en/docs/Web/API/Element/classList
【讨论】:
您需要将值分配给类,因为替换返回新字符串与替换文本
function del() {
cross.className = cross.className.replace("anim"," ");
}
【讨论】:
您可以使用 jQuery 通过其 id 从特定元素中删除类
$("#cross").removeClass("anim");
【讨论】: