• 注册
    • 查看作者
    • 利用jQuery写Tampermonkey脚本第三章第二节

      第三章 jQuery选择器

      3.2 jQuery选择器及实际应用

      3.2.1基本选择器

      基本选择器是jQuery中最常用的选择器,也是最简单的选择器,它通过元素id、class和标签名来查找DOM元素。

      选择器 描述 返回 示例
      #id 根据给定的id匹配一个元素 单个元素
      .class 根据给定的类名匹配元素 集合元素
      * 匹配所有元素 集合元素
      selector1,selector2,
      ...selectorN
      将每一个选择器匹配到的元素合并后一起返回 集合元素


      3.2.2层次选择器

      想通过DOM元素之间的层次关系来获取特定元素,那么层次选择器是一个非常好的选择。

      选择器 描述 返回
      $("ancestor descendant") 选取ancestor元素里的所有descendant(后代)元素 集合元素
      $("parent > child") 选取parent元素下的child(子)元素 集合元素
      $('prev + nest') 选取紧接在prev元素后面的next元素 集合元素
      $('prev ~ siblings') 选取prev元素之后的所有siblings元素 集合元素

      ps:有些人可能不理解,举个例子:子孙都叫后代,但是你的下一代只是“子”。$('prev+nest')选择器与$('prev~siblings')说的是兄弟元素,同一级别,也就好理解了。

      在层次选择器中,前两个选择器比较常用,而后面两个因为在jQuery里可以用更加简单的方法替代,所以使用的几率相对少一些。还有一个siblings()方法在这里提前给大家对比一下。

      选择器 方法 说明
      $('.one + div') $(".one").next("div") 选取.one的下一个同辈DIV元素
      $('#testId ~ div') $("#testId").nextAll("div") 选取#testId之后的所有同辈DIV元素
      $("#testId").siblings("div") 选取#testId,所有同辈DIV元素,无论前后

      3.2.3 过滤选择器

      过滤选择器主要是通过特定的过滤规则来筛选出所需的DOM元素,过滤规则与CSS中的伪类选择器语法相同。按照不同的过滤规则,过滤选择器可以分为以下几种:

      1.基本过滤选择器

      选择器 描述 返回 示例
      :first 选取第一个元素 单个元素 $("div:first")选取所有<div>元素中第一个<div>元素
      :last 选取最后一个元素 单个元素 $("div:last")选取所有<div>元素中最后一个<div>元素
      :not(selector) 去除所有与给定选择器匹配的元素 集合元素 $("inpout:not(.myClass)")选取class不是myClass的<input>元素
      :even 选取索引是偶数的所有元素,索引从0开始 集合元素 $("input:even")选取索引是偶数的<input>元素
      :odd 选取索引是奇数的所有元素,索引从0开始 集合元素 $("input:odd")选取索引是奇数的<input>元素
      :eq(index) 选取索引等于index的元素,index从0开始 集合元素 $("input:eq(1)")选取索引等于1的<input>元素
      :gt(index) 选取索引大于index的元素,index从0开始 集合元素 $("input:gt(1)")选取索引大于1的<input>元素,注意:这里不包括1
      :lt(index) 选取索引小于index的元素,index从0开始 集合元素 $("input:lt(1)")选取索引小于1的<input>元素,同上,不包括1
      :header 选取所有的标题元素,例如h1,h2,h3等 集合元素 $(":header")选取网页中所有<h1>,<h2>……
      :animated 选取当前正在执行动画的所有元素 集合元素 $("div:animated")选取正在执行动画的<div>元素

      2.内容过滤选择器

      内容过滤选择器的过滤规则主要体现在它所包含的子元素或文本内容上。

      选择器 描述 返回 示例
      :contains(test) 选取含有文本内容为“test”的元素
      :cempty 选取不包含子元素或者文本的空元素
      :has(selector) 选取含有选择器所匹配的元素的元素
      :parent 选取含有子元素或者文本的元素

      3.可见性过滤器

      可见性过滤选择器是根据元素的可见和不可见状态来选择相应的元素。

      选择器 描述 返回 示例
      :hidden 选取或有不可见的元素
      :visible 选取所有可见的元素

      4.属性过滤选择器

      属性过滤选择器的过滤规则是通过元素的属性来获取相应的元素。

      选择器 描述 返回 示例
      [arrtibute] 选取拥有此属性的元素
      [attribute=value] 选取属性的值为value的元素
      [attribute!=value] 选取属性的值不等于value的元素
      [attribute^=value] 选取属性的值以value开始的元素
      [attribute$=value] 选取属性的值以value结束的元素
      [attribute*=value] 选取属性的值含有value的元素
      [selector1][selector2]... 用多个属性选择器合并成一个符合属性选择器,同时满足多个条件

      5.子元素过滤器

      子元素过滤选择器的过滤规则相对于其他的选择器骚味有些复杂,不过,只要将元素的父元素和子元素区分清楚,那么使用起来也非常简单。另外还要注意它与普通的过滤选择器的区别。

      选择器 描述 返回 示例
      :nth-child(index/even/odd/equation) 选取每个父元素下的第index个子元素或者奇偶元素,index从1算起
      :first-child 选取每个父元素的第一个子元素
      :last-cild 选取每个父元素的最后一个子元素
      :only-child 如果某个元素是它父元素中唯一的子元素,那么将会匹配。如果父元素含有其他元素则不会被匹配。

      6.表单对象属性过滤选择器

      此选择器主要是对所选择的表单元素进行过滤。

      选择器 描述 返回 示例
      :enabled 选取所有可用元素 集合元素 $("#form1:enabled");选取id为form1的表单内的所有可用元素
      :disabled 选取所有不可用元素 集合元素 $("#form2:disabled");选取id为form2的表单内的所有不可用元素
      :checked 选取所有被选中的元素(单选框,复选框) 集合元素 $("input:checken");选取所有被选中的<input>元素
      :selected 选取所有被选中的选项元素(下拉列表) 集合元素 $("select:selected");选取所有被选中的选项元素

      3.2.4表单选择器

      为了使用户能够更加灵活的操作表单,jQuery中专门加入了表单选择器。

      选择器 描述 返回 示例
      :input 选取所有的<input>、<testarea>、<select>和<button>元素 集合元素 $(":input")
      :test 选取所有的单行文本框 集合元素 $(":test")
      :password 选取所有的密码框 集合元素 $(":password")
      :radio 选取所有的单选框 集合元素 $(":radio")
      :checkbox 选取所有的多选框 集合元素 $(":checkbox")
      :submit 选取所有的提交按钮 集合元素 $(":submit")
      :image 选取所有的图像按钮 集合元素 $(":image")
      :reset 选取所有的重置按钮 集合元素 $(":reset")
      :button 选取所有的按钮 集合元素 $(":button")
      :file 选取所有的上传域 集合元素 $(":file")
      :hidden 选取所有的不可见元素 集合元素 $(":hidden")前文中已经讲过

      辽宁省·葫芦岛市
    • 2
    • 1
    • 1
    • 301
    • 0
      Hneny初级会员
      转发了
    • 单栏布局 侧栏位置: