jQuery选择器总结(选择器+元素筛选)

痴心易碎 提交于 2021-01-23 13:01:00

一.jQuery 选择器

1.基本选择器

  • #ID 选择器:根据 id 查找标签对象

  • .class 选择器:根据 class 查找标签对象

  • element 选择器:根据标签名查找标签对象

  • * 选择器:表示任意的,所有的元素

  • selector1,selector2 组合选择器:合并选择器 1,选择器 2 的结果并返回

  • 还有一种是没有逗号的,如$("div.one")表示选取class="one"的<div>,而$("div,.one")表示的是选取所有<div>和所有class="one"的元素

示例:

$("#lastname")  //选取id="lastname" 的元素
$(".intro") //选取class="intro" 的所有元素
$("p") //选取所有 <p> 元素
$("*") //选取所有元素
$("h1,div,p") //选取所有 <h1>、<div> 和<p> 元素
$("div.one") //选取class="one"的<div>
$("div,.one") //选取所有<div>和所有class="one"的元素

2.层级选择器

  • ancestor descendant 后代选择器 :在给定的祖先元素下匹配所有的后代元素,即包括儿子元素,也包括孙子等其他元素
  • parent > child 子元素选择器:在给定的父元素下匹配所有的子元素,只包括儿子元素,不包括孙子等其他元素
  • prev + next 相邻元素选择器:匹配紧接在 prev 元素后的 next 元素 ,如果prev后面紧接者的不是next,则查找失败,如果是next,则只匹配一个紧接在 prev 元素后的 next 元素,而且prev与next之间是兄弟关系。
  • prev ~ sibings prev之后的兄弟元素选择器:匹配 prev 元素之后的所有 siblings 元素 ,而且只匹配prev 元素与 siblings 元素之间是兄弟关系的元素

示例:

$("body div") //选择 body 内的所有 div 元素
$("body > div") //在 body 内, 选择为div的子元素
$("#one+div") //选择 id 为 one 的下一个 div 元素
$("#one~div") //选择 id 为 one 的元素后面的所有 div 兄弟元素

3.过滤选择器

3.1基本过滤选择器

  • :first 获取第一个元素
  • :last 获取最后个元素
  • :not(selector) 去除所有与给定选择器匹配的元素
  • :even 从 0 开始计数,匹配所有索引值为偶数的元素
  • :odd 从 0 开始计数 匹配所有索引值为奇数的元素
  • :eq(index) 匹配一个给定索引值的元素
  • :gt(index) 匹配所有大于给定索引值的元素
  • :lt(index) 匹配所有小于给定索引值的元素
  • :header 匹配如 h1, h2, h3 之类的标题元素
  • :animated 匹配所有正在执行动画效果的元素

示例:

$("li:first")    //第一个li
$("li:last")     //最后一个li
$("li:not(#runoob)") //挑选除 id="runoob" 以外的所有li
$("li:even")     //挑选下标为偶数的li
$("li:odd")      //挑选下标为奇数的li
$("li:eq(4)")    //下标等于 4 的li(第五个 li 元素)
$("li:gt(2)")    //下标大于 2 的li
$("li:lt(2)")    //下标小于 2 的li
$(":header")     //选择所有的标题元素
$(":animated")   //选择当前正在执行动画的所有元素

3.2内容过滤选择器

  • :contains(text) 匹配包含给定文本的元素
  • :empty 匹配所有不包含子元素或者文本的空元素
  • :parent 匹配含有子元素或者文本的元素
  • :has(selector) 匹配含有选择器所匹配的元素

示例:

$("div:contains('Runob')")    // 包含 Runob文本的div元素
$("td:empty")                 //不包含子元素或者文本 的空td元素
$("td:parent")                //选择含有子元素或者文本 的td元素
$("div:has(.one)")        //选择含有 class 为 one 元素的 div 元素

3.3属性过滤选择器

  • [attribute] 匹配包含给定属性的元素。
  • [attribute=value] 匹配给定的属性是某个特定值的元素
  • [attribute!=value] 匹配所有属性不等于特定值的元素,或者不含有该属性的元素(没有属性attribute的也将被选中)。
  • [attribute^=value] 匹配给定的属性是以某些值开始的元素
  • [attribute$=value] 匹配给定的属性是以某些值结尾的元素
  • [attribute*=value] 匹配给定的属性是以包含某些值的元素
  • [attrSel1][attrSel2][attrSelN] 复合属性选择器,需要同时满足多个条件时使用

示例:

$("div[id]")        //所有含有 id 属性的 div 元素
$("div[id='123']")        // id属性值为123的div 元素
$("div[id!='123']")        // id属性值不等于123的div元素,或者不含有id属性的div元素
$("div[id^='aa']")        // id属性值以aa开头的div 元素
$("div[id$='zz']")        // id属性值以zz结尾的div 元素
$("div[id*='bb']")        // id属性值包含bb的div 元素
$("div[id][title*='es']") //首先选取有属性id的div元素,然后在结果中 选取属性title值 含有'es'的 div 元素

3.4可见性过滤选择器

  • :hidden 匹配所有不可见元素
  • :visible 匹配所有可见元素

示例:

$("li:hidden")       //匹配所有不可见的li
$("li:visible")      //匹配所有可见的li

3.5状态过滤选择器

  • :enabled 匹配所有可用元素
  • :disabled 匹配所有不可用元素
  • :checked 匹配所有选中的单选,复选,和下拉列表中选中的 option 标签对象
  • :selected 匹配所有选中的 option

示例:

$("input:enabled")    // 匹配可用的 input
$("input:disabled")   // 匹配不可用的 input
$("input:checked")    // 匹配选中的 input
$("option:selected")  // 匹配选中的 option

4.表单选择器

  • :input 匹配所有 input标签元素
  • :text 匹配所有 文本输入框
  • :password 匹配所有的密码输入框
  • :radio 匹配所有的单选框
  • :checkbox 匹配所有的复选框
  • :submit 匹配所有提交按钮
  • :image 匹配所有 img 标签
  • :reset 匹配所有重置按钮
  • :button 匹配所有 input type=button <button>按钮
  • :file 匹配所有 input type=file 文件上传

示例:

$(":input")      //匹配所有 input, textarea, select 和 button 元素
$(":text")       //所有的单行文本框,$(":text") 等价于$("[type=text]"),推荐使用$("input:text")效率更高,下同
$(":password")   //所有密码框
$(":radio")      //所有单选按钮
$(":checkbox")   //所有复选框
$(":submit")     //所有提交按钮
$(":image") 	 //所有带有 type="image" 的 input 元素
$(":reset")      //所有重置按钮
$(":button")     //所有button按钮
$(":file")       //所有文件域

二.jQuery元素筛选所用的一些方法

  • eq() 获取给定索引的元素 ;功能跟 :eq() 一样
  • first() 获取第一个元素 ;功能跟 :first 一样
  • last() 获取最后一个元素 ; 功能跟 :last 一样
  • filter(exp) 留下匹配的元素
  • is(exp) 判断是否匹配给定的选择器,只要有一个匹配就返回true
  • has(exp) 返回包含有匹配选择器的元素的元素 ;功能跟 :has 一样
  • not(exp) 删除匹配选择器的元素;功能跟 :not 一样
  • children(exp) 返回匹配给定选择器的子元素 ;功能跟 parent>child 一样
  • find(exp) 返回匹配给定选择器的后代元素 ;功能跟 ancestor descendant 一样
  • next() 返回当前元素的下一个兄弟元素 ;功能跟 prev + next 功能一样
  • nextAll() 返回当前元素后面所有的兄弟元素 ;功能跟 prev ~ siblings 功能一样
  • nextUntil() 返回当前元素到指定匹配的元素为止的后面元素
  • parent() 返回父元素
  • prev(exp) 返回当前元素的上一个兄弟元素
  • prevAll() 返回当前元素前面所有的兄弟元素
  • prevUnit(exp) 返回当前元素到指定匹配的元素为止的前面元素
  • siblings(exp) 返回所有兄弟元素
  • add() 把 add 匹配的选择器的元素添加到当前 jquery 对象中

示例:

$("div").eq(3) //选择索引值为等于 3 的 div 元素
$("div").first() //选择第一个 div 元素
$("div").last() //选择最后一个 div 元素
$("div").filter(":even") //在div中选择索引为偶数的
$("#one").is(":empty") //判断#one是否为:empty或:paren
$("div").has(".one") //选择div中包含.one的
$("div").not('.one') //选择div中class不为one的
$("body").children("div.one") //在body中选择所有class为one的div子元素
$("body").find("div.mini") //在body中选择所有class为mini的div元素
$("#one").next("div") //#one的下一个div
$("#one").nextAll("span") //#one后面所有的span元素
$("#one").nextUntil("span") //#one和span之间的元素 
$(".one").parent() //.one的父元素
$("#two").prev("div") //#two的上一个div
$("span").prevAll("div") //span前面所有的div
$("span").prevUntil("#one") //span向前直到#one的元素
$("#two").siblings() //#two的所有兄弟元素
$("span").add("#two").add("#one") //选择所有的 span 元素和id为two的元素
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!