详解JQuery中的五大选择器


目录

  • 详解JQuery中的五大选择器
  • 一、基本选择器
  • 二、层级选择器
  • 三、属性选择器
  • 四、过滤选择器
  • 五、表单过滤选择器


选择器能够筛选具有相似特征的元素标签,允许对HTML元素组或单个元素进行操作,jQuery 中所有选择器都以美元符号开头:$()。


首先我们先来讲讲JQuery的入口函数:

&(function(){
	//在这里写入代码
})

而在JavaScript中定义的入口函数window.onload方法和JQuery中的&(function)方法的区别是:
window.onload方法只能定义一次,如果定义多次,则前面的window.onload方法会被覆盖掉;&(function)方法可以多次定义,并且不会被覆盖

一、基本选择器

基本选择器有五类:
1、标签选择器: 语法:$ (“标签名”)
2、id选择器: 语法:$ ("#id的属性值")
3、类选择器:语法:$ (".class的属性值")
4、并集选择器:语法:$ (“选择器1,选择器2…”)

$(function(){
	//标签选择器
	//标签选择器又称元素选择器,用于获得所有匹配标签元素名称的元素
	$('div').css('backgroundColor','yellow')
	
	//id选择器:获得与指定id属性值匹配的元素
	//例如:元素id为container
	$('#container').css('backgroundColor','yellow')
	
	//类选择器:获得与指定class属性值匹配的元素
	//例如:元素class为container
	$('.container').css('backgroundColor','yellow')

	//并集选择器:获取多个选择器选中的所有元素
	//例如:选中所有div和所有id为container的的元素
	$('div #container').css('backgroundColor','yellow')
})



二、层级选择器

层级选择器有两类:
1、后代选择器:语法:$ (“A B”)
2、子选择器:语法:$ (“A>B”)

$(function(){
	//后代选择器:选择A元素内部的所有B元素
	//例如:选择div元素内部的所有span元素
	$('div span').css('backgroundColor','yellow')
	
	//子选择器:选择A元素下一级的B元素
	//例如:选择div元素内部的直系span元素
	$('div>span').css('backgroundColor','yellow')
})

后代选择器会选择A元素内部的所有B元素,而子选择器只会选择A元素的下一级B元素

后代选择器:

jquery选中两个id jquery多个选择器_css

子选择器:

jquery选中两个id jquery多个选择器_jquery_02


三、属性选择器

属性选择器有三类:
1、属性名称选择器:语法:$ (“A [属性名]”)
2、属性选择器:语法:$ (“A [属性名=‘值’]”)
3、复合属性选择器:语法:$ (“A[属性名=‘值’][ ]…”)

$(function(){
	//属性名称选择器:包含指定属性的选择器
	//例如:选择包含有属性class的div
	$("div[class]").css('backgroundColor','yellow')
	
	//属性选择器:包含指定属性等于指定值的选择器
	//例如:选择属性class等于container的div
	$("div[class='container']").css('backgroundColor','yellow')
	
	//复合属性选择器:包含多个属性条件的选择器
	//例如:选择包含有属性id并且属性class等于container的div
	$("div[id][class='container']").css('backgroundColor','yellow')
})

拓展:属性选择器与正则表达式

&(function(){
	//“^=”:指定属性名称是以指定值开头的选择器
	//例如:选择class属性以con开头的div
	$("div[class^='con']").css('backgroundColor','yellow')
	
	//“$=”:指定属性名称是以指定值结尾的选择器
	//例如:选择class属性以er结尾的div
	$("div[class$='er']").css('backgroundColor','yellow')

	//“*=”:指定属性名称中包含指定值的选择器
	//例如:选择class属性中含有tain的div
	$("div[class*='tain']").css('backgroundColor','yellow')
})



四、过滤选择器

过滤选择器有九类:
1、首元素选择器:语法:$ (“A:first”)
2、尾元素选择器:语法:$ (“A:last”)
3、非元素选择器:语法:$ (“A:not(selector)”)
4、偶数选择器:语法:$ (“A:even”)
5、奇数选择器:语法:$ (“A:odd”)
6、等于索引选择器:语法:$ (“A:eq(index)”)
7、大于索引选择器 :语法:$ (“A:gt(index)”)
8、小于索引选择器:语法:$ (“A:lt(index)”)
9、标题选择器:语法:$(":header")

$(function(){
	//首元素选择器:获得选择的元素的第一个元素
	//例如:选择列表的第一个li
	$("li:first").css('backgroundColor','yellow')

	//尾元素选择器:获得选择的元素的最后一个元素
	//例如:选择列表的最后一个li
	$("li:last").css('backgroundColor','yellow')

	//非元素选择器:不包括指定内容的元素
	//例如选择除class为container外的所有div
	$("div:not(.container)").css('backgroundColor','yellow')
	
	//偶数选择器:从0开始计数,获得选择的元素中索引为偶数的元素
	//例如:选择列表的偶数项li
	$("li:even").css('backgroundColor','yellow')

	//奇数选择器:从0开始计数,获得选择的元素中索引为奇数的元素
	//例如:选择列表的奇数项li
	$("li:odd").css('backgroundColor','yellow')

	//等于索引选择器:获得选择的元素中指定索引的元素
	//例如:选择列表索引为2的li
	$("li:eq(2)").css('backgroundColor','yellow')

	//大于索引选择器:获得选择的元素中大于指定索引的元素
	//例如:选择列表索引大于2的li
	$("li:gt(2)").css('backgroundColor','yellow')

	//小于索引选择器:获得选择的元素中小于指定索引的元素
	//例如:选择列表索引小于2的li
	$("li:lt(2)").css('backgroundColor','yellow')

	//标题选择器:获得标题(h1~h6)元素,固定写法:$(":header")
	//选择所有的标题元素
	$(":header").css('backgroundColor','yellow')
})



五、表单过滤选择器

表单过滤器有四类:
1、可用元素选择器:语法:$ (“A:enabled”)
2、不可用元素选择器:语法: $ (“A:disabled”)
3、选中选择器(单/复选框):语法:$ (“A:checked”)
4、选中选择器(下拉框)语法:$ (“A:selected”)

$(function(){
	//可用元素选择器:获得选择元素中的可用元素
	//例如:改变表单内可用 input 元素的值
	$("input[type='text']:enabled").val("aaa");

	//不可用元素选择器:获得选择元素中的不可用元素
	//例如:改变表单内不可用 input 元素的值
	$("input[type='text']:disabled").val("aaa");

	//选中选择器:获得单选/复选框选中的元素
	//例如:获得选中的复选框的个数
	$("input[type='checkbox']:checked").length;

	//选中选择器:获得下拉框选中的元素
	//例如:获得下拉框选中的个数
	$("#obj>option:selected").length;
})



注意:$ (“A:checked”)和$ (“A:selected”)的区别:

$ (“A:checked”)选择器的作用对象是单选/复选框,而$ (“A:selected”)选择器的作用对象是下拉框;$ (“A:selected”)的作用对象是下拉框中包含在内的选项,所以在使用的时候,因此在使用时应当使用“>”来具体说明