【小结】jQuery选择器

jQuery选择器是jQuery中最常用的,是jQuery的核心
大致有以下几种选择器:

  • 基本选择器
  • 多项选择器
  • 层级选择器
  • 属性选择器

###选择器相关

  • 多数选择器内的标签名都要写在’'里面
  • 匹配所有元素,返回含全部元素的数组
    如:
    $('element')[index]
    注意[index]如果不写则是以数组的形式返回所选择的全部元素
    排序是从0开始
    如选择所有div标签中的第一个
    $('div)[0]
  • 可返回多个元素,可使用
    $(this).index();
    返回各个元素的序号
    首先记得引用j jQuery库,这里采用最原始的方式书写jQuery
    下面是选择器介绍

#基本选择器


ID选择器 #id

  • 根据给定的ID匹配一个元素

此处选择一个id为first的元素:
$('#first)

element选择器 element

  • 选取带有指定元素名称的所有元素
    $('element')

###class选择器 .class

  • 根据给定的css类名匹配元素,返回含全部元素的数组
    语法:
    $(.class)·

还有一种用法是.class.class,可以选择两个关键字的类
例如:
$(.one.two)·//选择类名同时包含one和two的值的元素
###通配符选择器 *

  • 匹配所有元素
    语法:
    $('*)

#多项选择器


示例:
`$(“selector1,selector2,selector3”);

  • 每一个选择器匹配到的元素合并后一起返回。
  • 可以指定多个选择器,并将匹配到的元素合并到一个结果内(数组形式),并且选择后的顺序会完全遵循原来的标签顺序
  • 选择器类型可以不一致

#层级选择器


###祖先后代选择器(Ancestor Descendant)
语法格式:
$('ancestor descendant');

  • 在给定的祖先元素下匹配所有的后代元素
    示例:
    $('aside summary');//选择aside标签下所有的summary元素
  • 会选中所有后代(包含儿孙代),运行效率偏低

###子代选择器
语法:
$('parent > child');

  • 在给定的父级元素下匹配所有子元素
    示例:
    $('aside > details'); //选择aside元素下子代details元素
  • 更精准,效率更高
    ### ( p r e v + n e x t ) ('prev+next')选择器 语法: ` (‘prev + next’);`
  • 匹配所有紧接在prev元素后的next元素,上代元素必须是prev元素的next元素
    示例:
    $('summary + details'); //元素必须是紧接summary元素的details元素才会被选择
  • 扩充了层级选择器的范围,也叫next选择器
  • 选到1个next元素就不会再选了,即便后面有同名元素
    ###兄弟选择器 ( p r e v   s i b l i n g s ) ('prev~siblings') 语法: ` (‘prev ~ siblings’);`
  • 匹配所有紧接在prev元素后的所有siblings元素,上代元素必须是prev元素的siblings元素,并且只会选择在该代(层)所有的元素,不会往下一代(层)选择
    示例:
    $('summary ~ details'); //元素必须是紧接summary元素的所有details元素才会被选择

#属性选择器


###属性名选择器[attribute]
语法:
$('[attribute]')

  • 把包含属性名的全部元素选出来
    示例:
    $('[class]') //选择所有带class属性的元素
    ###属性值选择器[attribute=value]
    语法:
    $('[attribute=value]')
  • 把包含属性名且值为value的元素全部选出来
    示例:
    $('[class=tool]') //选择所有带class属性并且值为tool的元素
    ###非属性值选择器[attribute!=value]
    语法:
    $('[attribute!=value]')
  • 把包含属性名并且值不为value的匹配的元素全部选出来
    示例:
    $('[class!=tool]') //选择所有带class属性并且值不为tool的元素
    ###[attribute^=value]属性选择器
    语法:
    $('[attribute^=value]')
  • 把包含属性并且值为value开头的匹配的元素全部选出来
    示例:
    $('[class!=tool_]') //选择所有带class属性开头并且值为tool_开头的元素
    ###[attribute = v a l u e ] =value]属性选择器 语法: ` (’[attribute$=value]’)`
  • 把包含属性并且值为value结尾的匹配的元素全部选出来
    示例:
    $('[class$=_vs]') //选择所有带class属性并且值为_vs结尾的元素
    ###包含属性值选择器
    语法:
    $('[attribute*=value]')
  • 把包含属性并且值包含value的匹配的元素全部选出来
    示例:
    $('[class*=vs]') //选择所有带class属性并且值包含vs结尾的元素
    ###多个属性选择器
    语法:
    `$("[selector1][selector2][selector3]");
  • 把不同规则的属性全部选出来
    示例:
    $('[class*=vs][class=tool][class!=tool_]') //选择所有带class的属性中包含vs值的和class属性开头并且值不为tool_开头的元素和所有带class属性并且值为tool的元素

还有过滤器将放在下一小结,虽然两个其实功能都是选择
第一次写这类文章,不足之处还请多多指教。
简书传送门:https://www.jianshu.com/p/3b480a5724c3

猜你喜欢

转载自blog.csdn.net/index1551/article/details/92997568
今日推荐