jQuery选择器

jQuery可以理解成一个JS的代码库,使用时可以用更少的代码量完成更多的功能

但目前jQuery已经不再广泛使用,只有一些老的项目使用

本篇随笔涵盖了jQuery的选择器部分,大多都是CSS选择器的另一种简便写法,实际效果可参考CSS选择器一文

基本选择器

标签选择器

  $('标签名')

  其中可以用$(this).index()明确使用的是该类数组中的第几个元素,或者用$('元素')[index]访问

ID选择器

  $('#ID名')

类选择器

  $('.类名')

通配符选择器

  $('*')

  效率低,尽可能不用

多项选择器

  $('选择器1,选择器2,……')

  类似于CSS里的群组选择器

  最后返回所匹配到的所有元素的一个类数组,其中数组元素的顺序同HTML中标签先后顺序一致

 

层级选择器

祖先后代选择器

  $('祖先元素 后代元素')

  可以选中祖先元素的所有后代元素中为指定元素的元素(包括子元素孙元素等等),不是像CSS中只选子元素而不选孙元素

  生成的类数组中,元素顺序符合HTML中元素的先后顺序

直接后代选择器

  $('父元素>子元素')

  选中父元素下子元素为指定元素的元素,只会选中子元素而没有孙元素

相邻兄弟选择器

  $('元素+兄弟元素')

  选中紧跟在元素后的兄弟元素为特定元素的元素

兄弟选择器

  $('元素~兄弟元素')

  选中元素之后同级的所有兄弟元素中为指定元素的元素,而并非只是相邻的

 

属性选择器

  $('[class]'):选择元素中有class属性名的所有元素

  $('[attribute=value]'),找出attribute属性值为value的元素

  $('[attribute!=value]'):找出attribute属性值不为value的元素

  $('[attribute^=value]'):attribute属性值以value开头的元素(^可以理解为正则中首匹配)

  $('[attribute$=value]'):attribute属性值以value结尾的元素($可理解为正则中的尾匹配)

  $('[attribute*=value]'):attribute属性值包含value的元素

  $('[attribute1][attribute2]'),可以在其中放多个种类的属性选择器,最后筛选出同时满足其中所有条件的元素

 

过滤器

child

  $('父元素>子元素:first-child'):找到父元素下第一个子元素指定类型的元素

  $('父元素>子元素:last-child'):找到父元素下最后一个子元素指定类型的元素

  $('父元素>子元素:nth-child(n)'):找到父元素下第n个子元素指定类型的元素(n从1开始)

  $('父元素>子元素:nth-last-child(n)'):找到父元素下倒数第n个子元素指定类型的元素(n从1开始)

  $('父元素>子元素:only-child'):找到父元素下只有一个子元素,且为指定类型的元素

type

  $('父元素>子元素:first-of-type'):找到父元素下的第一个指定类型的子元素(不一定必须是第一个节点)

  $('父元素>子元素:last-of-type'):找到父元素下的最后一个指定类型的子元素(不一定必须是最后一个节点)

  $('父元素>子元素:nth-of-type(n)'):找到父元素下的第n个指定类型的子元素(不一定必须是第n个节点)

  $('父元素>子元素:nth-last-of-type(n)'):找到父元素下的倒数第n个指定类型的子元素(不一定必须是倒数第n个节点)

  $('父元素>子元素:only-of-type'):找到父元素下的唯一指定类型的子元素(不一定必须只有一个子节点)

参数n

  取值为整数从1开始

  也可取even(偶数),odd(奇数)

  也可用an+b的形式写(n从1开始),例如3n+1

 

表单选择器

表单元素选择器

  $(':input'):选择所有表单中的元素

  $(':text'):匹配所有的单行文本框,功能同$('input[type='text']')一样,其他的input中type(checkboxradio等)也可用这种方法匹配

表单状态选择器

  $(':enabled'):选中表单元素中enabled的元素(disabled也可如此使用)

  $(':checked'):选中表单元素中checked的元素(复选框、单选框等、select中的option)

  $(':selected'):选中表单元素中被选中的option元素

 

查找&过滤

  以下为jQuery的内置方法

find

  $('父元素').find('子元素')

  查找父元素中的后代元素(不只是子元素)

chidren

  $('父元素').children('子元素')

  查找父元素中的子元素(只是子元素)

parent

  $('子元素').parent()

  查找子元素的父元素(只是父元素)

  也有parents的方法(一个子元素的多个父元素),但不推荐使用

next/prev

  $('元素').next/prev('兄弟元素')

  查找元素相邻的前一个/后一个兄弟元素

eq

  $('元素').eq(n)

  查找当前链式操作中的第n个jQuery对象(其中eq方法里有隐式迭代),可以理解成查找找到的元素中的第n个

  n可正可负,如果是负数为倒数第n个

siblings

  $('元素').siblings()

  找到同级的元素的兄弟元素

filter

  $('元素').filter()

  用以在元素的jQuery对象中筛选出和括号内要求一致的元素

  其中方法内可传入参数包括:字符串(可写入选择器表达式)、jQuery对象、DOM元素、函数

posted @ 2019-08-15 13:09  且听风吟720  阅读(138)  评论(0编辑  收藏  举报