尽管这个问题已经被回答过很多次了,但我想我会为将来的用户提供更完整,更可靠的答案。主要答案确实可以解决问题,但我认为最好是了解/理解显示/隐藏事物的各种方式。
。
使用css()更改显示
在找到其他一些方法之前,这就是我以前使用的方法。
Javascript:
$("#element_to_hide").css("display", "none"); // To hide
$("#element_to_hide").css("display", ""); // To unhide
优点:
缺点:
- 如果将“ display”属性用于其他内容,则必须对隐藏之前的值进行硬编码。因此,如果您具有“内联”功能,则必须这样做,
$("#element_to_hid").css("display", "inline");
否则它将默认恢复为“阻止”或任何其他强制执行的功能。
- 容易造成错别字。
示例:https: //jsfiddle.net/4chd6e5r/1/
。
使用addClass()/ removeClass()更改显示
在为该示例设置示例时,我实际上在此方法上遇到了一些缺陷,使其非常不可靠。
CSS / Javascript:
.hidden {display:none}
$("#element_to_hide").addClass("hidden"); // To hide
$("#element_to_hide").removeClass("hidden"); // To unhide
优点:
- 隐藏....有时。请参考示例中的p1。
- 取消隐藏后,有时会返回使用先前的显示值。请参考示例中的p1。
- 如果要抓取所有隐藏的对象,只需要做
$(".hidden")
。
缺点:
- 如果显示值是直接在html上设置的,则不会隐藏。请参考示例中的p2。
- 如果显示是使用css()在javascript中设置的,则不会隐藏。请参考示例中的p3。
- 因为您必须定义css属性,所以代码略多。
示例:https://jsfiddle.net/476oha8t/8/
。
使用toggle()更改显示
Javascript:
$("element_to_hide").toggle(); // To hide and to unhide
优点:
- 一直有效。
- 使您不必担心切换之前的状态。明显的用途是用于.... toggle按钮。
- 简短而简单。
缺点:
- 如果您需要知道要切换到哪个状态以执行不直接相关的操作,则必须添加更多代码(if语句)以找出它处于哪个状态。
- 与先前的骗局类似,如果您要运行一组包含toggle()的指令以进行隐藏,但不知道该指令是否已被隐藏,则必须添加一个检查(if语句)首先找出它是否已隐藏,然后跳过。请参考示例的p1。
- 与前两个缺点有关,对特定隐藏或特定显示内容使用toggle()可能会使其他人在阅读您的代码时感到困惑,因为他们不知道他们将以哪种方式进行切换。
示例:https://jsfiddle.net/cxcawkyk/1/
。
使用hide()/ show()更改显示
Javascript:
$("#element_to_hide").hide(); // To hide
$("#element_to_hide").show(); // To show
优点:
- 一直有效。
- 取消隐藏后,它将返回到使用先前的显示值。
- 您将始终知道要切换到哪个状态,因此:
- 如果状态很重要,则无需在更改状态之前添加if语句来检查可见性。
- 如果状态很重要,则不会混淆其他人阅读您的代码时所切换到的状态。
- 直观。
缺点:
- 如果要模仿切换,则必须先检查状态,然后再切换到其他状态。这些可以使用toggle()代替。请参考示例的p2。
示例:https://jsfiddle.net/k0ukhmfL/
。
总的来说,除非您特别需要将它用作切换,否则我最好说是hide()/ show()。我希望您发现此信息对您有所帮助。
return false
的onclick
?