在我看来,.remove()
和.addClass()
是对html的永久修改。
例如,如果我在网站中有两个窗格,则每个窗格都会加载自己的页面p1.html
和p2.html
。在p1.html中,有一个按钮,可以删除/ addClass到<div>
中的p2.html
。
我意识到,一旦我点击按钮,就会永久改变。现在如果我有两个按钮,当我点击第一个按钮后点击第二个按钮时,我希望在点击第二个按钮之前恢复更改。我想避免对其进行硬编码,例如撤消修改,因为如果删除/添加<div class>....</div>
这更像是一个设计问题,而不是代码调试。我为阅读道歉。
答案 0 :(得分:3)
当您对某些内容发送.remove()
时,该内容已从
如果您只想隐藏该元素,那就这样做:
$('#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);