jQuery-选择器

jquery选择器是jquery的核心也是基础,现总结如下,以供参考:

1:基础介绍
jQuery对象:
	jQuery 对象就是通过 jQuery($()) 包装 DOM 对象后产生的对象
	jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 那么它就可以使用 jQuery 里的方法: $(“#persontab”).html();
	jQuery 对象无法使用 DOM 对象的任何方法, 同样 DOM 对象也不能使用 jQuery 里的任何方法
	约定:如果获取的是 jQuery 对象, 那么要在变量前面加上 $. 	
	var $variable = jQuery 对象
	var variable = DOM 对象

对象之间的转化:
jQuery对象转化成Dom对象:
	方法一:jQuery 对象是一个数组对象, 可以通过 [index] 的方法得到对应的 DOM对象
	var $cr = $("#cr");
	var cr = $cr[0];
	方法二:使用 jQuery 中的 get(index) 方法得到相应的 DOM 对象;
	var $cr = $("#cr");
	var cr = $cr.get(0);
	转换后就可以使用 jQuery 中的方法
Dom对象转化成jQuery对象:
方法一:对于一个 DOM 对象, 只需要用 $() 把 DOM 对象包装起来(jQuery 对象就是通过 jQuery 包装 DOM 对象后产生的对象),
        就可以获得一个 jQuery 对象. 
	var cr = document.getElementById("cr");
	var $cr = $(cr);	

2:jQuery 选择器:
选择器是 jQuery 的根基, 在 jQuery 中, 对事件处理, 遍历 DOM 和 Ajax 操作都依赖于选择器
以下分类进行说明:
基本选择器:
		是 jQuery 中最常用的选择器, 也是最简单的选择器, 它通过元素 id, class 和
		标签名来查找 DOM 元素(在网页中 id 只能使用一次, class 允许重复使用).
  案例:选择 id 为 one 的元素:$("#one")
		选择 class 为 mini 的所有元素:$(".mini")
		选择 元素名是 div 的所有元素:$("div")
		选择 所有的元素:$("*")
		选择 所有的 span 元素和id为two的元素:$("#two,span")
		
层次选择器:
		如果想通过 DOM 元素之间的层次关系来获取特定元素, 例如后代元素, 子元素, 相邻元素, 兄弟元素等, 则需要使用层次选择器.
  案例:选择 body 内的所有 div 元素:$("body  div")
		在 body 内, 选择子元素是 div 的:$("body > div")
		选择 id 为 one 的下一个 div 元素:$("#one + div")
		选择 id 为 two 的元素后面的所有 div 兄弟元素:$("#two ~ div")
		选择 id 为 two 的元素所有 div 兄弟元素:$("#two")
		选择 id 为 one 的下一个 span 元素:$("#one").nextAll("span:first")
		选择 id 为 two 的元素前边的所有的 div 兄弟元素:$("#two").prevAll("div")
基本过滤选择器:过滤选择器主要是通过特定的过滤规则来筛选出所需的 DOM 元素, 该选择器都以 “:” 开头
		按照不同的过滤规则, 过滤选择器可以分为基本过滤, 内容过滤, 可见性过滤, 属性过滤, 子元素过滤和表单对象属性过滤选择器.
	基本过滤选择器:
		选择第一个 div 元素:$("div:first")
		选择最后一个 div 元素:$("div:last")
		选择class不为 one 的所有 div 元素:$(":not(.one)")
		选择索引值为偶数的 div 元素:$("div:even")
		选择索引值为奇数的 div 元素:$("div:odd")
		选择索引值为大于 3 的 div 元素:$("div:gt(3)")
		选择索引值为等于 3 的 div 元素:$("div:eq(3)")
		选择索引值为小于 3 的 div 元素:$("div:lt(3)")
		选择所有的标题元素:(":header")
		选择当前正在执行动画的所有元素:$(":animated")
		选择 id 为 two 的下一个 span 元素:$("#two").nextAll("span:first")
	内容过滤选择器:
		选择 含有文本 'di' 的 div 元素:$("div:contains('di')")
		选择不包含子元素(或者文本元素) 的 div 空元素:$("div:empty")
		选择含有 class 为 mini 元素的 div 元素:$("div:has(.mini)")
		选择含有子元素(或者文本元素)的div元素:$("div:not(:empty)")或者:$("div:parent")
	可见性过滤选择器:
		选取所有可见的  div 元素:$(":visible")
		选择所有不可见的 div 元素:$(":hidden")
		选择所有不可见的 input 元素:$("input:hidden")
	属性过滤选择器:
		选取含有 属性title 的div元素:$("div[title]")
		选取 属性title值等于'test'的div元素:$("div[title='test']")
		选取 属性title值不等于'test'的div元素(没有属性title的也将被选中):$("div[title!='test']")
		选取 属性title值 以'te'开始 的div元素:$("div[title^='te']")
		选取 属性title值 以'est'结束 的div元素:$("div[title$='est']")
		选取 属性title值 含有'es'的div元素:$("div[title*=es]")
		组合属性选择器,首先选取有属性id的div元素,然后在结果中 选取属性title值 含有'es'的 div 元素:$("div[id][title*='es']")
		选取 含有 title 属性值, 且title 属性值不等于 test 的 div 元素:$("div[title][title!='test']")
	子元素过滤选择器:
		选取每个class为one的div父元素下的第2个子元素:$("div.one :nth-child(2)")//选子元素  需要在选择器器前添加一个空格
		选取每个class为one的div父元素下的第一个子元素:$("div.one :first-child")
		选取每个class为one的div父元素下的最后一个子元素:$("div.one :last-child")
		如果class为one的div父元素下的仅仅只有一个子元素,那么选中这个子元素:$("div.one :only-child")
	表单对象属性过滤选择器:
		对表单内 可用input 赋值操作:$(":text:enabled").val("test");
  		对表单内 不可用input 赋值操作:$(":text:disabled").val("test");
		获取多选框选中的个数:$(":checkbox[name='newsletter']:checked").length
		获取多选框选中的内容:$(":checkbox[name='newsletter']:checked").each(function()
								{
									alert(this.value);
								});
        获取下拉框选中的内容:$("select :selected").each(function()
								{
									alert(this.value);
								});//下边注解
		注解:			
			//实际被选择的不是select,而是select的option子节点 所以要加一个空格,因为
			//选子元素  需要在选择器器前添加一个空格
			//alert($("select :selected").length);
			//var len = $("select :selected").length;
			
			//当该数组有多个元素时,通过.val()方法就只能获取第一个被选择的值
			
			//jQuery对象遍历的方式是each,在each内部的this正是在得到的DOM对象,而不是一个jQuery对象
		
		
3:常用的jQuery方法:
		1:show(time);使不可见的元素变得可见  单位毫秒
		   Query很多方法支持方法的连缀;即一个方法的返回值是调用该方法的jQuery对象;
		    可以继续调用该对象的其他方法
			$(":hidden").show(2000).css("background","ffbbaa");
		
		2:jQuery的隐式迭代,$("p").click为所有的p节点增加监听
		   响应函数中this是一个dom对象  若想使用jQuery对象的方法  需要将其包装为jQuery对象 $(this)
		3:.text()方法是一个读写的方法,不加任何参数是读取文本值,加参数为属性节点设置文本值,
			和.text()方法类似的方法 有attr()  val()
		案例:
		//点击所有的p节点,能够弹出其相应的文本内容,然后改变其文本内容
		$("p").click(function()
		{
			//alert(this.firstChild.nodeValue);
			alert($(this).text());
			$(this).text("^^^"+$(this).text());
		});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值