系统学习 jQuery (三) 选择器
2017-07-12 10:02
225 查看
jQuery 操作 DOM 的逻辑是先找到想操作的 DOM 元素,然后进行相应操作。实际中我们一般是先通过 jQuery 选择器构造包含想要操作的 DOM 元素的 jQuery 对象,再通过 jQuery 对象方法对一个或一组 DOM 对象进行操作。全程使用链式操作完成方便清晰。
为了准确地选择要操作的 DOM 元素,jQuery 提供了类似 CSS 的丰富的选择器,且这些选择器可以按照一定规则组合以得到最大的灵活性。通过向 jQuery 函数传递选择器字符串来选择特定的 DOM 元素即 $(select)。
tag 选择特定标签的元素
.class 选择特定 class 的元素
* 选择所有元素
select1, select2, selectn 选择多个选择器匹配的元素
ancestor descendant 选择 ancestor 匹配的元素的后代中匹配 descendant 的元素
parent > child 选择 select1 匹配的元素的孩子中匹配 select2 的元素
prev + next 匹配紧接在 prev 之后的 next 兄弟元素
prev ~ siblings 匹配在 prev 之后的所有 siblings 兄弟元素
:first 获取匹配的第一个元素
:not(selector) 选择不匹配 selector 的元素
:even 匹配编号为偶数的元素
:odd 匹配编号为奇数的元素
:eq(index) 匹配特定编号的元素
:gt(index) 匹配编号大于特定值的元素
:lt(index) 匹配编号小于特定值的元素
:contains(text) 匹配包含给定文本的元素
:hidden 匹配不可见或 type 为 hidden 的元素
:visible 匹配可见的元素
[attr] 匹配包含给定属性的元素
[attr = value] 匹配给定属性是某个特定值的元素
[attr != value] 匹配给定属性不存在或不等于特定值的元素
[attr ^= value] 匹配给定属性是以某些值开始的元素
[attr $= value] 匹配给定属性是以某些值结束的元素
[attr *= value] 匹配给定属性包含某些值的元素
要了解全部 jQuery 选择器请查看 jQuery API http://jquery.cuishifeng.cn/id.html
eq(index) 选择集合中的第 index 个元素
first() 选择集合中第一个元素
last() 选择集合中最后一个元素
hasClass(class) 选择含有特定 class 的元素
filter(select) 选择与 select 匹配的元素
is(select) 判断是否与 select 匹配,只要有一个元素匹配就返回 true
has(select) 选择包含与 select 匹配的后代的元素
map(cb) 对 DOM 集合进行 map 操作以构造一个新数组
not(select) 选择不与 select 匹配的元素
children() 选择集合中所有元素的子元素
parent() 选择元素集合中所有元素的父元素
next() 选择元素的下一个兄弟元素
find(select) 在匹配的元素上再次应用选择器进行选择
要了解全部 jQuery 选择器请查看 jQuery API http://jquery.cuishifeng.cn/eq.html <!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="../lib/jquery-1.11.2/jquery.js"></script>
</head>
<body>
<div id="p1">
<p id="p2">
<a>
<span id="s1">hello7</span>
<span id="s2">hell2</span>
<span id="s3">hell3</span>
</a>
</p>
</div>
<script>
// p 里面不能套 p
$(function() {
console.log($('*:has(span)'));
console.log($("span:contains(7) ~ *"));
console.log($("span:contains(7) + *"));
console.log($("span:first"));
console.log($("span:nth-child(2)")); // 从 1 开始计数
console.log($("[id ^= s]"));
console.log($('span:even')); // 从 0 开始计数
console.log($('span:gt(0)')); // 从 0 开始计数
console.log($(':visible'));
console.log($(':root')); // 文档的根元素为 html 元素
console.log($('span').eq(2));
console.log($('#p1').find('p'));
console.log($('#s1').parent().children());
console.log($('span').filter(':contains(7)'));
});
</script>
</body>
</html>
为了准确地选择要操作的 DOM 元素,jQuery 提供了类似 CSS 的丰富的选择器,且这些选择器可以按照一定规则组合以得到最大的灵活性。通过向 jQuery 函数传递选择器字符串来选择特定的 DOM 元素即 $(select)。
jQuery 常用选择器
#id 选择特定 id 的元素tag 选择特定标签的元素
.class 选择特定 class 的元素
* 选择所有元素
select1, select2, selectn 选择多个选择器匹配的元素
ancestor descendant 选择 ancestor 匹配的元素的后代中匹配 descendant 的元素
parent > child 选择 select1 匹配的元素的孩子中匹配 select2 的元素
prev + next 匹配紧接在 prev 之后的 next 兄弟元素
prev ~ siblings 匹配在 prev 之后的所有 siblings 兄弟元素
:first 获取匹配的第一个元素
:not(selector) 选择不匹配 selector 的元素
:even 匹配编号为偶数的元素
:odd 匹配编号为奇数的元素
:eq(index) 匹配特定编号的元素
:gt(index) 匹配编号大于特定值的元素
:lt(index) 匹配编号小于特定值的元素
:contains(text) 匹配包含给定文本的元素
:hidden 匹配不可见或 type 为 hidden 的元素
:visible 匹配可见的元素
[attr] 匹配包含给定属性的元素
[attr = value] 匹配给定属性是某个特定值的元素
[attr != value] 匹配给定属性不存在或不等于特定值的元素
[attr ^= value] 匹配给定属性是以某些值开始的元素
[attr $= value] 匹配给定属性是以某些值结束的元素
[attr *= value] 匹配给定属性包含某些值的元素
要了解全部 jQuery 选择器请查看 jQuery API http://jquery.cuishifeng.cn/id.html
jQuery 常用筛选函数
除了通过选择器构造包含指定 DOM 元素的 jQuery 对象之外,jQuery 对象自身也提供了许多筛选函数来帮助我们近一步找到想要的元素。eq(index) 选择集合中的第 index 个元素
first() 选择集合中第一个元素
last() 选择集合中最后一个元素
hasClass(class) 选择含有特定 class 的元素
filter(select) 选择与 select 匹配的元素
is(select) 判断是否与 select 匹配,只要有一个元素匹配就返回 true
has(select) 选择包含与 select 匹配的后代的元素
map(cb) 对 DOM 集合进行 map 操作以构造一个新数组
not(select) 选择不与 select 匹配的元素
children() 选择集合中所有元素的子元素
parent() 选择元素集合中所有元素的父元素
next() 选择元素的下一个兄弟元素
find(select) 在匹配的元素上再次应用选择器进行选择
要了解全部 jQuery 选择器请查看 jQuery API http://jquery.cuishifeng.cn/eq.html <!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="../lib/jquery-1.11.2/jquery.js"></script>
</head>
<body>
<div id="p1">
<p id="p2">
<a>
<span id="s1">hello7</span>
<span id="s2">hell2</span>
<span id="s3">hell3</span>
</a>
</p>
</div>
<script>
// p 里面不能套 p
$(function() {
console.log($('*:has(span)'));
console.log($("span:contains(7) ~ *"));
console.log($("span:contains(7) + *"));
console.log($("span:first"));
console.log($("span:nth-child(2)")); // 从 1 开始计数
console.log($("[id ^= s]"));
console.log($('span:even')); // 从 0 开始计数
console.log($('span:gt(0)')); // 从 0 开始计数
console.log($(':visible'));
console.log($(':root')); // 文档的根元素为 html 元素
console.log($('span').eq(2));
console.log($('#p1').find('p'));
console.log($('#s1').parent().children());
console.log($('span').filter(':contains(7)'));
});
</script>
</body>
</html>
相关文章推荐
- 系统学习jQuery.核心知识.局部.jQuery选择器.基本选择器
- 系统学习jQuery.核心知识.局部.jQuery选择器.jQuery选择器概论与分类
- 系统学习jQuery.核心知识.局部.jQuery选择器.层次选择器
- JQuery学习日志1-选择器
- 从零开始学习jQuery (二) 万能的选择器【转】
- JQuery 学习笔记 选择器之三
- JQuery 学习笔记 选择器之二
- 从零开始学习jQuery (二) 万能的选择器
- 从零开始学习jQuery (二) 万能的选择器
- JQuery学习之(二)选择器
- jQuery:入门学习之选择器and jQuery性能优化的小建议
- 开始系统的学习Jquery
- jQuery选择器【学习】
- 传智播客学习之JQuery选择器
- (转)jquery学习随笔(jquery选择器)
- [转]从零开始学习jQuery (二) 万能的选择器
- 从零开始学习jQuery (二) 万能的选择器
- jQuery-使用选择器注意事项 学习笔记十
- JQuery学习笔记1:选择器之一
- 从零开始学习jQuery (二) 万能的选择器