By
anjia
更新日期:
基础选择器
1 2 3 4 5 6 7
| $('*') $('.class') $('#id') $('tag') $('selector1, selector2, selector2')
|
属性选择器
首先,在 jQuery 中使用属性选择器(attribute selector)不用考虑浏览器的兼容性问题。
再次,选择器表达式中的属性值必须符合 W3C 的 CSS 选择器的规定。
最后,括号包裹时注意,可以这么组合:单双、双单、单单(转义)、双双(转义)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| $('a[href]') $('input[name="id"]') $('input[name!="id"]') $('input[class|="item"]') $('input[class^="item"]') $('input[class$="item"]') $('input[class*="item"]') $('input[class~="item"]') $('a[href][name="more"]')
|
jQuery 中的属性选择器和 CSS 中的属性选择器,有相似之处,但不完全相同。点击查看 CSS中的属性选择器。
基础过滤
此处,举例说明。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| $('tr:not()') $('input:focus') $('li:first') $('li:last') $('tr:even') $('tr:odd') $('td:eq(2)') $('td:lt(2)') $('td:gt(2)') $(':target') $(':root') $(':lang()') $('div:animated') $(':header')
|
层级
1 2 3 4
| $('ul.list>li') $('ul li') $('lable+input') $('lable~input')
|
关键嘛,就在于区分这4个就ok了。
1.直接子 <
2.子子孙孙 空格
3.兄弟 ~
4.相邻兄弟 +
子元素过滤
1 2 3 4 5 6 7
| $(':first-child') $(':last-child') $(':nth-child(1)') $('ul:first-child')
|
jQuery 实现的 nth- 是严格遵守 CSS 规范的,下标从1开始。对于其他的选择器 eg. :eq() :even 则是遵循 JS 中的“0索引”技术。
1 2 3 4 5 6 7 8 9 10 11
| :only-child :only-of-type :first-of-type :last-of-type :nth-last-child() :nth-last-of-type() :nth-of-type()
|
表单
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| :input :text :button :password :file :radio :checkbox :reset :submit :image :checked :selected :disabled :enabled :focus
|
内容过滤
1 2 3 4 5 6
| :contains() :empty :parent :has()
|
可见性过滤
什么是“可见元素”?即占据文档中的一定空间就ok了。
所以,可见元素不包括display:none,不包括 width=0 height=0
所以,visibility:hidden; opacity:0 是可见的(因为他们依然占位)
什么是“隐藏的元素”?包括以下这几种情况:
1.display:none
2.type=hidden 的表单元素
3.height=0 width=0
4.祖先元素是隐藏的
jQuery扩展
jQuery 扩展出来的选择器,并不是的 CSS 规范的一部分,使用它并不能充分利用原生 DOM 提供的 querySelectorAll() 方法来提高性能。为了现代浏览器上获得更佳的性能,都不建议使用。来看看都有谁,25个。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| [name!="value"] :selected :first :last :even :odd :eq() :gt() :lt() :header :animated :parent :has() :hidden :visible :input :text :password :radio :checkbox :button :file :image :submit :reset
|
参考
http://www.jquery123.com/category/selectors/