在jQuery中,如果想要实现元素的显示与隐藏,有以下2种方式。

  • (1)show()和hide()
  • (2)toggle()

一、show()和hide()

在jQuery中,我们可以使用show()方法来显示元素,也可以使用hide()方法来隐藏元素。一般情况下,show()和hide()这两个方法都是配合一起使用的。

语法:

$().show(speed, fn) $().hide(speed, fn)

说明:

show()方法会把元素由display: none;还原为原来的状态(display:block、display:inline-block等)。

hide()方法会为元素定义display:none;。

speed是一个可选参数,表示动画的速度,单位为毫秒。如果省略,则表示没有动画效果。speed有两种取值:一种是“字符串”;另外一种是“数值”,如下表所示。

speed取值为字符串
取值 说明
"fast" 200毫秒
"normal" 400毫秒(默认值)
"slow" 600毫秒

fn也是一个可选参数,表示动画执行完成后的回调函数。在这里,所谓的回调函数,说白了就是在动画执行完成后执行的一个函数。

举例:无动画的show()和hide()

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-1.12.4.min.js"></script> <script> $(function () { $("#btn_hide").click(function(){ $("img").hide(); }) $("#btn_show").click(function () { $("img").show(); }) }) </script> </head> <body> <input id="btn_hide" type="button" value="隐藏" /> <input id="btn_show" type="button" value="显示" /><br/> <img src="img/jquery.png" alt=""/> </body> </html>

浏览器预览效果如下图所示。

分析:

在这个例子中,当我们点击【隐藏】按钮时,使用hide()方法隐藏图片;当点击【显示】按钮时,使用show()方法显示图片。

$("#btn_hide").click(function () { $("img").hide(); }); $("#btn_show").click(function () { $("img").show(); });

上面代码其实等价于:

$("#btn_hide").click(function () { $("img").css("display" , "none"); }); $("#btn_show").click(function () { $("img"). css("display" , "block"); });

举例:带动画的show()和hide()

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-1.12.4.min.js"></script> <script> $(function () { $("#btn_hide").click(function(){ $("img").hide("fast"); }) $("#btn_show").click(function () { $("img").show(500); }) }) </script> </head> <body> <input id="btn_hide" type="button" value="隐藏" /> <input id="btn_show" type="button" value="显示" /><br/> <img src="img/jquery.png" alt="" /> </body> </html>

浏览器预览效果如下图所示。

分析:

这个例子相对上一个例子来说,只是在show()和hide()中添加了一个速度参数,然后就带上了动画效果,小伙伴们一定要在本地编辑器测试感受一下。

其中,参数500指的是500毫秒,不需要带上单位。也就是说,show(500ms)这种写法是错误的,正确写法应该是show(500)。

二、toggle()

在jQuery中,我们还可以使用toggle()方法来“切换”元素的显示状态。也就是说,如果元素是显示状态,则会隐藏起来;如果元素是隐藏状态,则会显示出来。

语法:

$().toggle(speed, fn)

说明:

speed是一个可选参数,表示动画的速度,单位为毫秒。如果省略,则表示没有动画效果。speed有两种取值:一种是“字符串”;另外一种是“数值”,如下表所示。

speed取值为字符串
取值 说明
"fast" 200毫秒
"normal" 400毫秒(默认值)
"slow" 600毫秒

fn也是一个可选参数,表示动画执行完成后的回调函数。

此外要说明一点:toggle()方法在jQuery 3.x版本中已经被移除了。当然,如果使用jQuery 1.x版本则不用在意这个。

举例:

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-1.12.4.min.js"></script> <script> $(function () { $("#btn").click(function(){ $("img").toggle(500); }) }) </script> </head> <body> <input id="btn" type="button" value="切换" /><br/> <img src="img/jquery.png" alt="" /> </body> </html>

浏览器预览效果如下图所示。

分析:

从这个例子可以看出,使用toggle()方法来切换元素的显示状态,比show()和hide()这两个方法更加简单方便。