jQuery选择器
1、jQuery选择器包括:基本选择器、层次选择器、过滤选择器和表单选择器。
1.1、基本选择器:
选择器 | 描述 | 返回 | 示例 |
#id | 根据给定的id匹配一个元素 | 单个元素 | $(“#test”)选取id为test的元素 |
.class | 根据给定的类名匹配元素 | 集合元素 | $(“.test”)选取所有class为test的元素 |
element | 根据给定的元素名匹配元素 | 集合元素 | $(“p”)选取所有的<p>元素 |
* | 匹配所有元素 | 集合元素 | $(“*”)选取所有的元素 |
Selector1,selector2… | 将每一个选择器匹配到得元素合并后一起返回 | 集合元素 | $(“div,span,p.myClass”)选取所有<div>,<span>和拥有class为myClass的<p>标签的一组元素 |
示例0101
1.2、层次选择器:
选择器 | 描述 | 返回 | 示例 |
$(“ancestor descendant”) | 选取ancestor元素里的所有descendant(后代)元素 | 集合元素 | $(“div span”)里的所有<span>元素 |
$(“parent>child”) | 选取parent元素下的child(子)元素 | 集合元素 | $(“div > span”)选取<div>元素下元素名是<span>的子元素 |
$(‘prev + next’) | 选取紧接在prev元素后的next元素 | 集合元素 | $(‘.one + div’)选取class为one的下一个<div>兄弟元素 |
$(‘prev ~ siblings’) | 选取prev元素之后的所有siblings元素 | 集合元素 | $(‘#two ~ div’)选取id为two的元素后面的所有<div>兄弟元素 |
示例0102
1.3、过滤选择器包括:基本过滤、内容过滤、可见性过滤、属性过滤、子元素过滤和表单对象属性过滤选择器。
1.3.1、基本过滤选择器:
选择器 | 描述 | 返回 | 示例 |
:first | 选取第一个元素 | 单个元素 | $(“div:first”)选取所有<div>元素中第一个<div>元素 |
:last | 选取最后一个元素 | 单个元素 | $(“div:last”)选取所有<div>元素中最后一个<div>元素 |
:not(selector) | 去除所有与给定选择器匹配的元素 | 集合元素 | $(“input:not(.myClass)”)选取class不是myClass的<input>元素 |
:even | 选取索引是偶数的元素 | 集合元素 | $(“input:even”)选取索引是偶数的<input>元素 |
:odd | 选取索引是奇数的元素 | 集合元素 | $(“input:odd”)选取索引是奇数的<input>元素 |
:eq(index) | 选取索引等于index的元素 | 单个元素 | $(“input:eq(1)”)选取索引等于1的<input>元素 |
:gt(index) | 选取索引大于index的元素 | 集合元素 | $(“input:gt(1)”)选取索引大于1的<input>元素 |
:lt(index) | 选取索引小于index的元素 | 集合元素 | $(“input:lt(1)”)选取索引小于1的<input>元素 |
:header | 选取所有的标题元素,例如h1,h2,h3等 | 集合元素 | $(“:header”)选取网页中所有的<h1>,<h2>,<h3>… |
:animated | 选取当前正在执行动画的元素 | 集合元素 | $(“div:animated”)选取正在执行动画的<div>元素 |
示例0103
1.3.2、内容过滤选择器:
选择器 | 描述 | 返回 | 示例 |
:contains(test) | 选取文本内容含有”test”的元素 | 集合元素 | $(“div:contains(‘我’)”)选取含有文本”我”的<div>元素 |
:empty | 选取不包含子元素或文本的空元素 | 集合元素 | $(“div:empty”)选取不包含子元素(包括文本元素)的<div>元素 |
:has(selector) | 选取含有选择器所匹配的元素的元素 | 集合元素 | $(“div:has(p)”)选取含有<p>元素的<div>元素 |
:parent | 选取含有子元素或文本的元素 | 集合元素 | $(“div:parent”)选取拥有子元素(包括文本元素)的<div>元素 |
示例0104
1.3.3、可见性过滤选择器:
选择器 | 描述 | 返回 | 示例 |
:hidden | 选取所以不可见的元素 | 集合元素 | $(“:hidden”)选取所有不可见元素。包括<input type=”hidden”/>,<div style=”display:none;”>和<div style=”visibility:hidden;”>等元素。只取<input>元素用$(“input:hidden”) |
:visible | 选取所有可见的元素 | 集合元素 | $(“div:visible”)选取所有可见的<div>元素 |
示例0105
1.3.4、属性过滤选择器:
选择器 | 描述 | 返回 | 示例 |
[attribute] | 选取拥有此属性的元素 | 集合元素 | $(“div[id]”)选取拥有属性id的<div>元素 |
[attribute=value] | 选取属性的值为value的元素 | 集合元素 | $(“div[title=test]”)选取属性title为”test”的<div>元素 |
[attribute!=value] | 选取属性的值不等于value的元素 | 集合元素 | $(“div[title!=test]”)选取属性title不等于”test”的<div>元素(没有title属性的<div>元素也会被选取) |
[attribute^=value] | 选取属性的值以value开始的元素 | 集合元素 | $(“div[title^=test]”)选取属性title以”test”开始的<div>元素 |
[attribute$=value] | 选取属性的值以value结束的元素 | 集合元素 | $(“div[title$=test]”)选取属性title以”test”结束的<div>元素 |
[attribute*=value] | 选取属性的值含有value的元素 | 集合元素 | $(“div[title*=test]”)选取属性title含有”test”的<div>元素 |
[selector1][selector2]… | 复合属性选择器,满足多个条件。每选择一次缩小一次范围 | 集合元素 | $(“div[id][title$=’test’]”)选择拥有属性id,并且属性title以”test”结束的<div>元素 |
示例0106
1.3.5、子元素过滤选择器:
选择器 | 描述 | 返回 | 示例 |
:nth-child(index/even /odd/equation) | 选取每个父元素下的第index个子元素或奇偶元素(index从1算起) | 集合元素 | :eq(index)只匹配一个元素,而:nth-child将为每一个父元素匹配子元素,index从1开始,而:eq(index)从0开始 |
:first-child | 选择每个父元素的第一个子元素 | 集合元素 | :first只返回单个元素,而:first-child选择符将为每个父元素匹配第一个子元素。如$(“ul li:first-child”)选取每个<ul>中第一个<li>元素 |
:last-child | 选择每个父元素的最后一个子元素 | 集合元素 | :last只返回单个元素,而:last-child选择符将为每个父元素匹配最后一个子元素。如$(“ul li:last-child”)选择每个<ul>中最后一个<li>元素 |
:only-child | 如果某个元素是它父元素中唯一的子元素,那么将会被匹配。如果父元素中还有其它元素不会被匹配 | 集合元素 | $(“ul li:only-child”)在<ul>中选取是唯一子元素的<li>元素 |
示例0107
1.3.6、表单对象属性过滤选择器:
选择器 | 描述 | 返回 | 示例 |
:enabled | 选取所有可用元素 | 集合元素 | $(“#form1:enabled”)选取id为”form1”的表单内的所有可用元素 |
:disabled | 选取所有不可用元素 | 集合元素 | $(“#form2:disabled”)选取id为”form2”的表单内的所有不可用元素 |
:checked | 选取所有被选中的元素 | 集合元素 | $(“input:checked”)选取所有被选中的<input>元素 |
:selected | 选取所有被选中的选项元素(下拉列表) | 集合元素 | $(“select:selected”)选取所有被选中的选项元素 |
示例0108
1.4、表单选择器:
选择器 | 描述 | 返回 | 示例 |
:input | 选取所有<input>,<textarea>,<select>和<button>元素 | 集合元素 | $(“:input”)选取所有<input>,<textarea>,<select>和<button>元素 |
:text | 选取所有的单行文本框 | 集合元素 | $(“:text”)选取所有单行文本框 |
:password | 选取所有密码框 | 集合元素 | $(“:password”)选取所有密码框 |
:radio | 选取所有单选框 | 集合元素 | $(“:radio”)选取所有单选框 |
:checkbox | 选取所有复选框 | 集合元素 | $(“:checkbox”)选取所有复选框 |
:submit | 选取所有提交按钮 | 集合元素 | $(“:submit”)选取所有提交按钮 |
:image | 选取所有图像按钮 | 集合元素 | $(“:image”)选取所有图像按钮 |
:reset | 选取所有重置按钮 | 集合元素 | $(“:reset”)选取所有重置按钮 |
:button | 选取所有按钮 | 集合元素 | $(“:button”)选取所有按钮 |
:file | 选取所有上传域 | 集合元素 | $(“:file”)选取所有上传域 |
:hidden | 选取所有不可见元素 | 集合元素 | $(“:hidden”)选取所有不可见元素 |
示例0109
几个示例:
1、 给网页中所有<p>元素添加onclick事件。
<p>测试一</p>
<p>测试二</p>
Var items = document.getElementsByTagName(“p”);
For(var i=0;i<items.length;i++){
Items[i].οnclick=function(){
//doing
}
}
2、 使一个特定的表格各行变色。
<table id=”tb”>
<tbody>
<tr><td>第一行</td></tr>
<tr><td>第二行</td></tr>
<tr><td>第三行</td></tr>
<tr><td>第四行</td></tr>
<tr><td>第五行</td></tr>
</tbody>
</table>
Var item=document.getElementById(“tb”);
Var tbody=item.getElementByTagName(“tbody”)[0];
Var trs=tbody.getElementsByTagName(“tr”);
For(var i=0;i<trs.length;i++){
If(i%2==0){
Trs[i].style.backgroundColor=”#888”;
}
}
3、 对多选框进行操作,输出选中的多选框的个数。
<input type=”checkbox” value=”1” name=”check” checked=”checked”/>
<input type=”checkbox” value=”2” name=”check”/>
<input type=”checkbox” value=”3” name=”check” checked=”checked”/>
<input type=”button” value=”你选中的个数” id=”btn”/>
Var = document.getElementById(“btn”);
Btn.onclick = function(){
Var arrays = new Array();
Var items = document.getElementsByName(“check”);
For(i=0;i<items.length;i++){
If(items[i].checked){
Arrays.push(items[i].value);
}
}
Alert(“选中的个数是:”+arrays.length);
}
例子一:
$(“p”).click(function(){
//doing
})
例子二:
$(‘#tb tbody tr:even’).css(“backgroundColor”,”#888”);
例子三:
$(‘#btn’).click(function(){
Var length = $(“input[name=’check’]:checked”).length;
Alert(“选中的个数是:”+length);
})