您的位置:首页 > Web前端 > JQuery

jQuery温习篇---强大的JQuery选择器

2010-04-23 09:02 323 查看
学习jQuery已经有1年多的时间了,但是一直由于做WinForm程序开发没有经常实践。现在又开始重拾WebForm开发。写几篇jQuery系列,温习下jQuery框架的知识。

在jQuery出世以来,它取得很大的成就和认同。JQuery是一个轻量级的JavaScript框架,它的发布版很小仅16K左右。它能让你方便简洁的写出漂亮的动画效果、实现各种视觉效果,轻松的处理JavaScript的DOM数以及Ajax的交互行为。它的优点在于轻量级、简单易学、易扩展、跨浏览器和网上拥有大量的jQuery插件使用。由于它这一大堆的优点,它已经被微软官方认可加入VS IDE中拥有强大的智能提示,并据官方的统计现在至少有20%的国际性大网站已经加入jQuery作为其脚本。
1:首先是JavaScript的DOM 和 jQuery包装集的区分
1.1:在JavaScript中我们访问的方式是操作DOM结构,提供的可用方法有:
1: document.getElementById("ID"):根据ID获取DOM对象。
2:document.getElementsByName("name"):根据HTML标记name属性获取一个DOM数组。
3:document.getElementsByTagName("Tag"):根据HTML的Tag获取一个DOM数组。
1.2:jQuery相对DOM则提供了许多可用的方法和属性。
jQuery简单的获取对象有$(“#id”) ,$(“.class”),$(“tag”)方式,它的书写方式和css3.0相似 id用#,class(css)用.,HTMl Tag则直接书写。关于jquery的选择器在下面讲述,这里不急。
1.3:JavaScript的DOM对象转可以化为jQuery包装集:通过$(element)赴会就为jQuery包装集。
2:jQuery最强大的就是提供了一个万能的属性选择器。
2.1基本选择器
[align=center]选择表达式[/align]
[align=center]说明[/align]
[align=center]举例[/align]
[align=center]#id[/align]
[align=center]根据给定的ID匹配一个元素用#[/align]
[align=center]$("#testDiv2") 获取ID为testDiv2的元素[/align]
[align=center].class[/align]
[align=center]根据给定的类匹配元素(也就是取class的值)用.[/align]
[align=center]$(".myDiv") 获取class为myDiv的一组元素[/align]
[align=center]element[/align]
[align=center]根据给定的元素名匹配所有元素,直接写上元素名例如(p,a,input,div等)[/align]
[align=center]$("div") 获取所有的div元素[/align]
[align=center]selector1,selector2,selectorN[/align]
[align=center]将每一个选择器匹配到的元素合并后一起返回,选择器可以是id,class,element用,隔开[/align]
[align=center]$("#testDiv2,p")[/align]
[align=center]$("p,span,div.myDiv") 获取所有的p,span和class为myDiv的元素[/align]
[align=center]*[/align]
[align=center]选择所有的元素[/align]
[align=center]$("*")[/align]
2.2简单选择器

[align=center]选择表达式[/align]
[align=center]说明[/align]
[align=center]举例[/align]
[align=center]:first[/align]
[align=center]匹配找到的第一个元素[/align]
[align=center]$("div:first")[/align]
[align=center]:last[/align]
[align=center]匹配找到的最后一个元素[/align]
[align=center]$("div:last")[/align]
[align=center]:eq(index)[/align]
[align=center]匹配一个给定索引值的元素,当然要存在才可以找得到,索引从0开始[/align]
[align=center]$("div:eq(1)")[/align]
[align=center]:gt(index)[/align]
[align=center]匹配所有大于给定索引值的元素[/align]
[align=center]$("div:gt(0)") 查找第1个以后的元素[/align]
[align=center]:lt(index)[/align]
[align=center]匹配所有小于给定索引值的元素[/align]
[align=center]$("div:lt(2)") 查找第一行和第二行的元素[/align]
[align=center]:even[/align]
[align=center]匹配所有索引值为偶数的元素,从 0 开始计数[/align]
$("div:even")

查找第1,3,5个div
[align=center]:odd[/align]
[align=center]匹配所有索引值为奇数的元素,从 0 开始计数[/align]
$("div:odd")

查找第2,4个div
[align=center]:not(selector)[/align]
去除所有与给定选择器匹配的元素

selector为表达式,可以是属性里面的一个值
$("input:not(:checked)")

查找所有未选中的input 元素[注 :checked为自定义筛选选择器,后面会讲到]
[align=center]:header[/align]
[align=center]匹配如 h1, h2, h3之类的标题元素[/align]
$(":header").css("background", "#EEE");

添加样式
[align=center]:animated[/align]
[align=center]匹配所有正在执行动画效果的元素[/align]
[align=center]暂无例子[/align]
3.3:内容选择器

[align=center]选择表达式[/align]
[align=center]说明[/align]
[align=center]举例[/align]
[align=center]:contains(text)[/align]
[align=center]匹配包含给定文本的元素,只要里面出现即可[/align]
$("p:contains('段落')")

找带有段落字样的p元素
[align=center]:empty[/align]
[align=center]匹配所有不包含子元素或者文本的空元素[/align]
[align=center]$("div:empty")[/align]
[align=center]:has(selector)[/align]
[align=center]匹配含有选择器所匹配的元素的元素[/align]
[align=center]$("div:has('p')")[/align]
[align=center]:parent[/align]
[align=center]匹配含有子元素或者文本的元素[/align]
[align=center]$("div:parent")[/align]
4.4子元素选择器

[align=center]选择器[/align]
[align=center]说明[/align]
[align=center]举例[/align]
[align=center]:first-child[/align]
[align=center]匹配第一个子元素[/align]
[align=center]$("ul li:first-child")//在每个 ul 中查找第一个 li[/align]
[align=center]:last-child[/align]
[align=center]匹配最后一个子元素[/align]
[align=center]$("ul li:last-child")//在每个 ul 中查找最后一个 li[/align]
[align=center]:nth-child(index/even/odd/equation)[/align]
[align=center]匹配其父元素下的第N个子或奇偶元素[/align]
[align=center]':eq(index)' 只匹配一个元素,而这个将为每一个父元素匹配子元素。:nth-child从1开始的,而:eq()是从0算起的![/align]
可以使用:

nth-child(even)//偶数行

:nth-child(odd)//奇数行

:nth-child(3n)

:nth-child(2)//索引为2的

:nth-child(3n+1)

:nth-child(3n+2)
[align=center]$("ul li:nth-child(2)")//在每个 ul 查找第 2 个li[/align]
[align=center]:nth-child(index/even/odd/equation)[/align]
[align=center]匹配其父元素下的第N个子或奇偶元素[/align]
[align=center]$("ul li:nth-child(2)")//在每个 ul 查找第 2 个li[/align]
[align=center]:only-child[/align]
[align=center]如果某个元素是父元素中唯一的子元素,那将会被匹配[/align]
[align=center]如果父元素中含有其他元素,那将不会被匹配。[/align]
[align=center]$("ul li:only-child")//在 ul 中查找是唯一子元素的 li[/align]
4.5:可见性选择器

[align=center]选择器[/align]
[align=center]说明[/align]
[align=center]举例[/align]
[align=center]:hidden[/align]
[align=center]匹配所有的不可见元素,input 元素的 type 属性为 "hidden" 的话也会被匹配到[/align]
[align=center]$("div:hidden")[/align]
[align=center]:visible[/align]
[align=center]匹配所有的可见元素[/align]
$("div:visible")//元素来匹配

$(".divH:visible")//根据class来匹配
例子就不用多讲了,大家对于jQuery应该都有一定的见地了。呵呵…
本博客中同类文章还有,请见:我jQuery系列之目录汇总
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息