菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
83
0

jquery可见性过滤选择器有哪些?

原创
05/13 14:22
阅读数 987

jQuery的可见性选择器是根据元素的可见和不可见状态来选择相对应的元素。主要有两个:

过滤器名jQuery 语法说明返回
:hidden $(':hidden') 选取所有不可见元素集合元素
:visible $(':visible') 选取所有可见元素集合元素

可见选择器 :hidden 不仅包含样式属性 display 为 none 的元素, 也包含文本隐藏域 ()和 visible:hidden 之类的元素

先来看一个HTML结构,方便学习这两个选择器的使用:

  <span></span>
  <div></div>
  <div style="display:none">Hider!</div>
  <div style="visibility:hidden">Hider!</div>
  <div class="startHidden">Hider!</div>
  <div class="startVisibilityHidden">Hider!</div>
  <div></div>
  <form>
    <input type="hidden" />
    <input type="hidden" />
    <input type="hidden" />
  </form>
  <span></span>
  <button>显示隐然元素</button>
</div>

CSS Code:

<style type="text/css">
  .wrap {
     width: 500px;
     padding: 10px;
     margin: 20px auto;
     border: 1px solid #ccc;
  }
 
  .wrap div {
    width: 70px;
    height: 40px;
    background: #0083C1;
    margin: 5px;
    float: left
  }
  span {
    display: block;
    clear: left;
    color: #008000;
  }
  .startHidden {
    display: none;
  }
 .startVisibilityHidden {
   visibility: hidden;
 }
</style>

初步效果

1.png

下面我们分别来看看这两个选择器的语法和使用规则以及所起的作用。

不可见性选择器::hidden

$("E:hidden") //E表示元素标签
//或
$(":hidden") //选择所有隐藏元素

描述:

E:hidden表示选择隐藏的E元素,而:hidden表示选取所有不可见的元素

返回值:集合元素

实例:

$(document).ready(function(){
  //在第一个span标签中增加文本,显示body中有多少个元素隐藏
  $("span:first").text("Found " + $(":hidden",document.body).length + " hidden elements total.");

  $("div:hidden").show("3000");//显示所有隐藏的div元素
  //在最后一个span标签中增加文本,显示有多少input隐藏
  $("span:last").text("Found " + $("input:hidden").length + " hidden inputs");
});

功能:

":hidden"选取所有不可见的元素,有的浏览器还包含了<header>内所有标签,而且这里所指的不可见元素是样式为“display:none”和表单“type="hidden"”两种,而不包含“visibility:hidden”的隐藏元素。另外提醒大家,“:hidden”有的会导致选择中<header>内所有标签,所以建议前面加个元素标签。

效果:

2.png

可见性选择器::visible

$("E:visible") //E是指元素标签,选择指定的可见元素标签
//或者
$(":visible")//选择所有可见元素

描述:

“E:visible”表示选择可见的E元素,比如说“$("div:visible")”表示选择所有可见的div元素,而“$(":visible")”表示选择所有可见元素

返回值:集合元素

实例:

<script type="text/javascript">
  $(document).ready(function(){
     $("div:visible").click(function(e){ //可见DIV元素绑定一个单击事件
$(this).css("border","2px solid red"); //给可见的DIV元素增加一个2px的红色边框
e.stopPropagation();//停止事件冒泡
      });
     $("button").click(function(e){ //给button绑定一个单击事件
$("div:hidden").show("fast").css("background","red");//隐然的元素显示出来,并把背景变成红色
e.stopPropagation();//停止事件冒泡
});
   });
</script>

功能:

上面第一段代码是鼠标单击可见的DIV元素后,该元素会增加一个2px红色边框的样式,而第二段代码是单击按钮会显示所有隐藏的元素,并加上红色背景色。这里所指的可见元素和我们前面隐藏元素一样,只是没有被“display:none”或“.hide()”隐藏的元素。

效果:

3.png

最后在说一点:“:visible”过滤出所有可见元素,但是这里的可见是指没有被“display:none”或者使用“.hide()“函数隐藏的元素;”:hidden“是选择所有隐藏元素。同样,这里所谓隐藏,不是指”visibility:hidden“,而是指”display:none“或”type="hidden"“的form元素。

发表评论

0/200
83 点赞
0 评论
收藏
为你推荐 换一批