jQuery选择器总结
1. jQuery对象与DOM转换:
var $div = $(document.getElementById('div')); //dom对象转jquery对象
var div1 = $div.get(0); //方法1:jquery对象转dom对象
var div2 = $div[0]; //方法2:jquery对象dom对转象
2. 常规选择器:
‘#’ :id选择器 源码getElementById()
‘.’ :类选择器 源码getElementsByClassName()
‘xx’ :xx元素选择器 源码getElementsByTagName()
‘*’ :全选择器
3. 层选择器:
通过与参考选择器的关系选择
‘>’ :子选择(第一代后代)
‘ ’ :所有后代选择
‘+’ :相邻兄弟选择
‘~’ :一般兄弟选择。匹配参考选择器的所有兄弟
4. 筛选选择器
筛选选择器用法与css伪元素相似,以‘:’当头,但其中属性筛选选择器例外,以’[ ]’限定
4.1 基本筛选:
‘:first’ :匹配第一个元素
‘:last’ :匹配最后一个
‘not(selector)’ :匹配除指定selector以外的所有
‘:eq(index)’ :匹配第index个
‘:gt(index)’ :匹配索引大于index的所有
‘:lt(index)’ :匹配索引小于index的所有
‘:even’ :匹配偶数索引
‘:odd’ :匹配奇数索引
以下不常用
‘:header’ :匹配标题元素,如h1--h4
‘:lang(language)’ :匹配指定语言的所有元素
‘:root’ :匹配该文档的根元素
‘:animated’ :选择正在指定动画效果的所有元素
4.2 内容筛选:
根据子元素或者文本内容来筛选
‘:contains(text)’ :选择所有包含指定文本的元素
‘:has(selector)’ :选择所有至少包含指定selector的元素
‘:parent’ :选择所有含有子元素或者文本的元素
‘:empty’ :选择所有不含子元素或者文本的元素
4.3可见性筛选:
‘:visible’ :选择所有显示元素
‘:hidden’ :选择所有隐藏元素
ps: 若元素占据文档一定空间,则被认为是可见的。
css属性中的visibility:hidden或opacity: 0的元素都被认为是可见的,因为他们占据空间布局。
4.4 属性筛选:
基于属性名和值筛选
‘[attr]’ :选择具有指定属性的元素,不限制值
‘[attr='value']’ :选择指定属性值等于value的元素。
‘[attr*='value']’ :选择指定属性具有包含value的元素
以下不常用
‘[attr|='value']’ :选择指定属性值等于value或以value为前缀(value-xxxx)的元素。
‘[attr~='value']’ :选择指定属性值用空格分隔的值中包含value的元素
‘[attr!='value']’ :选择不存在的指定属性或者指定的属性值不等于value的元素
‘[attr^='value']’ :选择指定属性是以value开始的元素
‘[attr$='value']’ :选择指定属性是以value结尾的元素,区分大小写
4.5 子元素筛选:(不常用)
根据参考元素和他父元素的关系来筛选
‘:first-child’ :选择所有作为其父元素的第一个子元素的元素
‘:last-child’ :选择所有作为其父元素的最后一个子元素的元素
‘:only-child’ :选择所有作为其父元素的唯一子元素的元素
‘:nth-child(index)’ :选择所有作为其父元素的第index个子元素的元素
‘:nth-last-child(index)’ :选择所有作为其父元素的倒数第index个子元素的元素
如以下html结构:
<div>
<div>
<a>1</a>
</div>
<div>
<a>2</a>
<a>3</a>
<a>4</a>
</div>
<div>
<a>5</a>
<a>6</a>
</div>
</div>
jquery代码:
$(div a:first-child) 会选中1,2,5。等同于$(div a:nth-child(0));
$(div a:only-child) 会选中1
$(div a:nth-child(1)) 会选中3,6
$(div a:nth-last-child(0)) 会选中1,4,6。等同于$(div a:last-child);
4.6 表单元素选择器
‘:input’ 匹配所有input,textarea,select和button元素
‘:text’ 匹配所有文本框
‘:password'’ 匹配所有密码框
‘:radio’ 匹配所有单选框
‘:checkbox’ 匹配所有复选框
‘:submit’ 匹配所有提交按钮
‘:image’ 匹配所有图像域
‘:reset’ 匹配所有重置按钮
‘:button’ 匹配所有按钮
‘:file’ 匹配所有文件域
大部分表单类型筛选器都可以类似于$('input:password') == $('input[type=password]')来替换
4.7 表单对象属性筛选选择器
‘:enabled’ 匹配可用的表单元素
‘:disabled’ 匹配不可用的表单元素
‘:checked’ 匹配被选中的input元素
‘:selected’ 匹配被选中的option元素,下拉框适用
总结
这些选择器表达式都应该放在’ $() ‘中的’( )’里面,匹配根据元素名,元素与其父或其子的关系,元素的属性,元素的位置,元素的子内容等,结果返回为Jquery对象。