选择器
1、基本选择器
选择器 |
描述 |
返回 |
示例 |
#id |
根据给定的id匹配一个元素 |
单个元素 |
$(“#test”) |
.class |
根据给定的类名匹配元素 |
集合元素 |
$(“.test”) |
Element |
根据给定的元素名匹配元素 |
集合元素 |
$(“p”) |
* |
匹配所有元素 |
集合元素 |
$(“*”) |
Selector1,sel2…selN |
将每一个选择器匹配到的元素合并后一起返回 |
集合元素 |
$(“div,span,p.myClass”) |
2、层次选择器
选择器 |
描述 |
返回 |
示例 |
$(“A B”) |
选择A元素里的所有B(后代)元素 |
集合元素 |
$(“div span”)选取<div>里的所有的<span>元素 |
$(“A > B”) |
选取A元素下的child(子)元素 |
集合元素 |
$(“div > span”)选取<div>元素下元素名是<span>的子元素 |
$(“A + B”) |
选取紧接在A元素后的B元素 |
集合元素 |
|
$( “A~B ” ) |
选取A元素之后的所有B元素 |
集合元素 |
|
|
|
|
|
3、过滤选择器
选择器 |
描述 |
返回 |
示例 |
:first |
选取第一个元素 |
单个元素 |
$(“div:first”)选取所有<div>元素中第一个<div>元素 |
:last |
选取最后一个元素 |
单个元素 |
$(“div:last”)选取所有<div>元素中最后一个<div>元素 |
:not(selector) |
去除所有与给定选择器匹配的元素 |
集合元素 |
$(“input:not(.myClass)”选取class不是myClass的<input>元素 |
:even |
选取索引是偶数的所有元素,索引从0开始 |
集合元素 |
$(“input:even”)选取索引是偶数的<input>元素 |
:odd |
选取索引是奇数的所有元素,索引从0开始 |
集合元素 |
$(“input:odd”) |
:eq(index) |
选取索引等于index的元素(index从0开始) |
单个元素 |
$(“input:eq(1)”)选取索引等于1的<input>元素 |
:gt(index) |
选取索引大于index的元素 |
|
|
:lt(index) |
选取索引小于index的元素 |
|
|
:header |
选取所有的标题元素,例如h1,h2,h3 |
|
$(“:header”) |
:animated |
选取当前正在执行动画的所有元素 |
|
$(“div:animated”)选取正在执行动画的div元素 |
4、内容过滤选择器
选择器 |
描述 |
返回 |
示例 |
:contains(text) |
选取含有文本内容为”text”的元素 |
集合元素 |
$(“div:contains(‘我’)”)选取含有文本“我”的<div>元素 |
:empty |
选取不包含子元素或者文本的空元素 |
集合元素 |
$(“div:empty”)选取不包含子元素(包含文本元素)的<div>空元素 |
:has(selector) |
选取含有选择器所匹配的元素的元素 |
集合元素 |
$(“div:has(p)”)选取含有<p>元素的<div>元素 |
:parent |
选取含有子元素或者文本的元素 |
集合元素 |
$(“div:parent”)选取拥有子元素(包括文本元素)的<div>元素 |
|
|
|
|
5、可见性过滤选择器
选择器 |
描述 |
返回 |
示例 |
:hidden |
选取所有不可见的元素 |
|
|
:visible |
选取所有可见的元素 |
|
|
|
|
|
|
|
|
|
|
6、属性过滤选择器
选择器 |
描述 |
返回 |
示例 |
[attribute] |
选取拥有此属性的元素 |
集合元素 |
$(“div[id]”) 选取拥有属性id的元素 |
[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][selectorn] |
用属性选择器合并成一个复合属性选择器,满足多个条件。每选择一次,缩小一次范围 |
集合元素 |
$(“div[id][title$=’test’]”) 选取拥有属性id,并且属性title以”test”结束的<div>元素 |
7、子元素过滤选择器
选择器 |
描述 |
返回 |
示例 |
:nth-child( index/even/odd/equation ) |
选取每个父元素下的第index个子元素或者奇偶元素(index从1算起) |
集合元素 |
:eq(index)只匹配一个元素,而:nth-child将为每一个父元素匹配子元素,并且:nth-child(index)的index是从1开始的,而:eq(index)是从0开始的 |
:first-child |
选取每个父元素的第1个子元素 |
集合元素 |
:first值返回单个元素,而:first-child选择符将为每个父元素匹配第1个子元素。如, |
:last-child |
选取每个父元素的最后一个子元素 |
集合元素 |
同样,:last只返回单个元素,而:last-child选择符将为每个父元素匹配最后一个元子元素。 |
:only-child |
如果某个元素是它父元素中惟一的子元素,那么将会被匹配。如果父元素中含有其他元素,则不会被匹配 |
集合元素 |
$(“ul li:only-child”) 在<ul>中选取是惟一子元素的<li>元素 |
:nth-child()选择器是很常用的子元素过滤选择器,
1):nth-child(even) 能选取每个父元素下的索引值是偶数的元素
2)::nth-child(odd) 能选取每个父元素下的索引值是奇数的元素
3)::nth-child(2) 选取每个父元素下的索引值等于2的元素
4)::nth-child(3n) 选取每个父元素下的索引值是3的倍数的元素,(n从0开始)
5)::nth-child(3n+1) 选取每个父元素下的索引值是(3n+1)的元素。(n从0开始)
8、表单对象属性过滤选择器
选择器 |
描述 |
返回 |
示例 |
:enabled |
选取所有可用元素 |
集合元素 |
$(“#form1 :enabled”) |
:disabled |
选取所有不可用元素 |
集合元素 |
$(“#form2 :disabled”) |
:checked |
选取所有被选中的元素(单选框、复选框) |
集合元素 |
$(“input:checked”) |
:selected |
选择所有被选中的选择元素(下拉列表) |
集合元素 |
$(“select :selected”) |
9、表单选择器
选择器 |
描述 |
返回 |
示例 |
:input |
选取所有的<input> |
集合元素 |
$(“:input”) |
:text |
选取所有的单行文本框 |
集合元素 |
$(“:text”)选取所有的单行文本框 |
:password |
选取所有的密码框 |
集合元素 |
$(“:password”)选取所有的密码框 |
:radio |
选取所有的单选框 |
集合元素 |
$(“:radio”) |
:checkbox |
选取所有的多选框 |
集合元素 |
$(“:checkbox”) |
:submit |
选取所有的提交按钮 |
集合元素 |
|
:image |
选取所有的图像按钮 |
集合元素 |
|
:reset |
选取所有的重置按钮 |
集合元素 |
|
:button |
选取所有的按钮 |
集合元素 |
|
:file |
选取所有的上传域 |
集合元素 |
|
:hidden |
选取所有的不可见元素 |
集合元素 |
|
1、 show() 显示隐藏的匹配元素
2、 css(name,value) 给元素设置样式
3、 text(string) 设置所有匹配元素的文本内容
4、 filter(expr) 筛选出与指定表达式匹配的元素集合,其中,expr可以是多个选择器的组合
5、 addClass(class) 为匹配的元素添加指定的类名
6、 .is(selector)
selector----字符串值,包含匹配元素的选择器表达式。
is() 根据选择器、元素或 jQuery 对象来检测匹配元素集合,如果这些元素中至少有一个元素匹配给定的参数,则返回 true。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script type="text/javascript" src="jquery-1.6.4.min.js"></script> <script type="text/javascript"> $(function(){ var $category = $('ul li:gt(5):not(:last)'); // 获得索引值大于5的品牌集合对象(除最后一条) $category.hide(); var $toggleBtn = $('div.showmore > a'); $toggleBtn.click(function(){ if($category.is(":visible")){ $category.hide(); // 隐藏$category $('.showmore a span') .css("background","url(images/down.gif) no-repeat 0 3px") .text("显示全部品牌"); //改变背景图片和文本 $('ul li').removeClass("promoted"); // 去掉高亮样式 }else{ $category.show(); // 显示$category $('.showmore a span') .css("background","url(images/up.gif) no-repeat 0 3px") .text("精简显示品牌"); //改变背景图片和文本 $('ul li').filter(":contains('佳能'),:contains('尼康'),:contains('奥林巴斯')") .addClass("promoted"); //添加高亮样式 } return false; //超链接不跳转 }); }); </script> <style> *{ margin:0; padding:0;} body {font-size:12px;text-align:center;} a { color:#04D; text-decoration:none;} a:hover { color:#F50; text-decoration:underline;} .SubCategoryBox{width:600px; margin:0 auto; text-align:center;margin-top:40px;} .SubCategoryBox ul { list-style:none;} .SubCategoryBox ul li { display:block; float:left; width:200px; line-height:20px;} .showmore { clear:both; text-align:center;padding-top:10px;} .showmore a { display:block; width:120px; margin:0 auto; line-height:24px; border:1px solid #AAA;} .showmore a span { padding-left:15px; background:url(images/down.gif) no-repeat 0 3px;} .promoted a { color:#F50;} </style> </head>
<body> <div class="SubCategoryBox"> <ul> <li ><a href="#">佳能</a><i>(30440) </i></li> <li ><a href="#">索尼</a><i>(27220) </i></li> <li ><a href="#">三星</a><i>(20808) </i></li> <li ><a href="#">尼康</a><i>(17821) </i></li> <li ><a href="#">松下</a><i>(12289) </i></li> <li ><a href="#">卡西欧</a><i>(8242) </i></li> <li ><a href="#">富士</a><i>(14894) </i></li> <li ><a href="#">柯达</a><i>(9520) </i></li> <li ><a href="#">宾得</a><i>(2195) </i></li> <li ><a href="#">理光</a><i>(4114) </i></li> <li ><a href="#">奥林巴斯</a><i>(12205) </i></li> <li ><a href="#">明基</a><i>(1466) </i></li> <li ><a href="#">爱国者</a><i>(3091) </i></li> <li ><a href="#">其它品牌相机</a><i>(7275) </i></li> </ul>
<div class="showmore"> <a href="more.html"><span>显示全部品牌</span></a> </div>
</div> </body> </html> |
$(".test1").toggle(function(){ alert('a'); },function(){ alert('b'); });