jQuery基础----选择器,过滤器

注:所有内容参考《JavaScript & jQuery The Missing Manual 2nd Edition》

jQuery操作的基础是建立在选中特定元素的基础上的,由选择器完成这功能,辅以过滤器能生成更复杂的选择条件。jQuery选择器和CSS选择器基本相同,

basic selectors


元素选择器
:你可以选中页面的某一种标签,比如选中页面所有<a>标签, $('a')

ID选择器:html的标签属性中带有id属性,你可以选中带有相同id值的内容,比如为了选中以下内容:
<p id="message">Special message</p>
你可以使用 $('#message'),在id值之前加上 #, 类似于CSS

类选择器:和ID选择器类似,选中具有相同class 值的内容。 $('.message')选中下面一行
<p class="message">Special message</p>

advanced selectors

基础选择器非常简单,能执行的的选择功能很弱。下面使用复杂些的选择器。

子孙选择器(Descendent selectors): 如果你想选中一个<ul id=“navBar”>标签中的所有链接,使用$('a')显然是不可行的,因为这也会选中<ul id=“navBar”>标签以外的所有链接。你可以使用 $('#navBar a')完成你的设想,首先选中id为navBar的元素,在已选中元素的范围内选择所有链接。可以看作两个嵌套选择器,最后选中的是右边的元素。

孩子选择器(Child  selectors): 子孙选择器选中了所有子孙,而孩子选择器只选择直接子孙
<body>
    <h2>
        <p>paragraph in header2</p>
    </h2>
    <div>first block</div>
    <p>paragraph as child of body</p>
    <div>second block</div>
</body>
对于以上内容,$('body p')选择了两个<p>标签,而孩子选择器 $('body > p')选择了后一个<p>标签。

相邻兄弟选择器(Adjacent sibling selectors): 选择紧接着一个元素之后的元素,同样需要两个选择器,使用‘+’连接。对于上个选择器的例子, $('h2 + div')选中第一个<div>标签,注意如果<h2>标签之后紧跟着不是<div>, 选择器不产生作用。

属性选择器(Attribute selectors): 选择定义了某个属性的元素。 $('img[alt]')选择定义了alt属性的<img>元素。还可以匹配属性的值,进行更精确的选择。 $('input[type="text"]')选中表单中的文本框类型。属性值不一定要完全匹配, $('a[href^="http://"]')匹配了以"http://"开头的链接,选择了http协议的链接。 $('a[href$=".pdf"]')匹配以".pdf"结尾的链接,这个链接指向一个pdf文档。 $('a[href*="missingmanuals.com"]')匹配含有域名"missingmanuals.com"的链接,只要链接中包含该域名字串,就会被选中。

filters

jQuery使用过滤器完成更复杂的选择操作,过滤器在选择器的基础上进行选择。
$('tr:even')选择一个<table>中所有偶数行,你可以使用它让表格相邻两行显示不同的颜色。:odd 过滤器选中的则是奇数行。计数从0开始,第一行是偶数行。
$('p:first')选择页面第一个<p>标签,$('p:last')则选择最后一个<p>标签。
使用:not()过滤后,得到不匹配特定选择器的内容。比如 $('a:not(.navButton)')选择所有不属于navButton类的链接。
:has()找到包含另一个选择器的元素。比如 $('li:has(a)')选择包含链接的<li>标签。
:contains()包含的则是标签内的文本,而不像 :has()包含的是另一个选择器。 $('a:contains(Click Me!)')选择包含 Click Me! 这段文本的链接,文本内容不需要加双引号。
:hidden选择隐藏元素, $('div:hidden').show()显示被隐藏的<div>。:visible和 :hidden执行相反的选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值