JQuery如何临时删除/ addClass到一个页面?

时间:2015-09-01 18:48:14

标签: jquery html

在我看来,.remove().addClass()是对html的永久修改。

例如,如果我在网站中有两个窗格,则每个窗格都会加载自己的页面p1.htmlp2.html。在p1.html中,有一个按钮,可以删除/ addClass到<div>中的p2.html

我意识到,一旦我点击按钮,就会永久改变。现在如果我有两个按钮,当我点击第一个按钮后点击第二个按钮时,我希望在点击第二个按钮之前恢复更改。我想避免对其进行硬编码,例如撤消修改,因为如果删除/添加<div class>....</div>

的长代码,则修改本身

这更像是一个设计问题,而不是代码调试。我为阅读道歉。

3 个答案:

答案 0 :(得分:3)

当您对某些内容发送.remove()时,该内容已从中移除。因此,要撤消该更改,您确实必须将其完整地添加回DOM。

如果您只想隐藏该元素,那就这样做:

$('#someElement').hide();

之后您可以重新显示它:

$('#someElement').show();

或者你可以将两者结合成一个电话,隐藏所显示的内容并显示隐藏的内容:

$('#someElement').toggle();

这样,元素仍然是DOM的一部分,它们只是被设计为在你想再次显示它们之前不显示。

或者,要明确切换类而不是显示整个元素,请使用removeClass()addClass()和/或toggleClass()

答案 1 :(得分:2)

$(selector).removeClass(className)将删除该课程

$(selector).addClass(className)将添加类

$(selector).hasClass(className)将检查班级是否存在

$(selector).toggleClass(className, flag)将根据标记

检查并添加/删除该类

有关详细信息,请参阅documentation

答案 2 :(得分:1)

根据你的问题(至少对我来说)你不清楚你想要完成什么。但是,您可以尝试一些选项来完成您想要的任务。首先,为了清楚起见,请理解.remove()不是.addClass()的反向操作。

选项1:

如果您想在添加和删除课程之间进行替换,可以使用:

$(selector).addClass(classname);

添加一个类,或:

$(selector).removeClass(classname);

您也可以像这样切换给定的类:

$(selector).toggleClass(classname);

选项2:

如果您确实想要从DOM中删除一组元素,以便稍后重新附加元素,则可以尝试以下操作:

var $elements = $(selector).detach();

这将分离元素,但保留其关联的数据和事件处理程序。然后可以使用此方法重新附加这些元素:

$(parent).append($elements);

或:

$elements.appendTo(parent);