jQuery选择器
本文内容引自于单东林《锋利的jQuery》,未经原作者准许,禁止以商业目的转载发布!
选择器是jQuery的根基,在jQuery中,对事件处理、遍历DOM(Document Object Model)和Ajax(Asynchronous JavaScript and XML)操作都依赖于选择器。
1 优势
1.1 简洁的写法
$()被jQuery作为选择器函数来使用。例如,$("#ID")用来代替document.getElementById()。
1.2 支持CSS1到CSS3选择器
支持从CSS1~3的部分选择器,同时它也有少量独有的选择器。使用CSS选择器时,开发人员需要考虑主流浏览器是否支持某些选择器。而在jQuery中,开发人员则可以放心地使用jQuery选择器而无需考虑浏览器是否支持这些选择器。
1.3 完善的处理机制
使用jQuery获取网页中不存在的元素也不会报错,例如:
<div>test</div>
<script type="text/javascript">
$('#tt').css("color", "red")
</script>
有了这个预防措施,即使以后因为某种原因删除网页上某个以前使用过的元素,也不用担心这个网页的JavaScript代码会报错。
2 CSS选择器和jQuery选择器
2.1 基本选择器
| CSS | jQuery | 功能 |
| #id |
$(“#test”) |
选取id为test的元素 |
| .class |
$(“.test”) |
选取所有class为test的元素 |
| element |
$(“p”) |
选取所有的<p>元素 |
| * |
$(“*”) |
选取所有的元素 |
| selector1,selector2,…selectorN |
$(“div,span,p.myClass”) |
选取所有<div>,<span>和拥有class为myClass的<p>标签的一组元素 |
2.2 层次选择器
| CSS | jQuery | 功能 |
| E F |
$(“div span”) |
选取<div>里所有的<span>元素 |
| E>F |
$(“div>span”) |
选取<div>元素下元素名是<span>的子元素 |
| E+F |
$(“.one+div”) |
选取class为one的下一个<div>同辈元素 |
| E~F |
$(“#two~div”) |
选取id为two的元素后面的所有<div>同辈元素 |
2.3 过滤选择器
2.3.1 基本过滤选择器
| CSS | jQuery | 功能 |
| :first |
$(“div:first”) |
|
| :last |
$(“div:last”) |
|
| :not(selector) |
$(“input:not(.myClass)”) |
|
| :even |
$(“input:even”) |
|
| :odd |
$(“input:odd”) |
|
| :eq(index) :gt(index) :lt(index) |
$(“input:eq(1)”) |
|
| :header |
$(“:header”) |
选取所有的标题元素 |
| :animated |
$(“div:animated”) |
选取当前正在执行动画的所有元素 |
| :focus |
$(“:focus”) |
选取当前获取焦点的元素 |
2.3.2 内容过滤选择器
| CSS | jQuery |
| :contains(text) |
$(“div:contains(“text”)”) |
| :empty |
$(“div:empty”) |
| :has(selector) |
$(“div:has(p)”) |
| :parent |
$(“div:parent”) |
2.3.3 可见性过滤选择器
| CSS | jQuery |
| :hidden |
$(“:hidden”) |
| :visible |
$(“div:visible”) |
2.3.4 属性过滤选择器
| CSS | jQuery |
| [attribute] |
$(“div[id]”) |
| [attribute=value] |
$(“div[title=test]”) |
| [attribute!=value] |
$(“div[title!=test]”) |
[attribute^=value] $ * | ~ |
$(“div[^=test]”) |
| [attr1][attr2][attrN] |
$(“div[id][title$=’test’”]) |
2.3.5 子元素过滤选择器
| CSS | jQuery |
| :nth-child(n) |
同上 |
| :first-child |
|
| :last-child |
|
| :only-child |
|
2.3.6 表单对象属性过滤选择器
| CSS | jQuery |
| :enabled |
同上 |
| :disabled |
|
| :checked |
|
| :selected |
|
2.4 表单选择器
| CSS | jQuery |
| :input |
|
| :text |
|
| :password |
|
| :radio |
|
| :checkbox |
|
| :submit |
|
| :image |
|
| :reset |
|
| :button |
|
| :file |
|
| :hidden |
|