一、jQuery选择器优势
1、简洁的写法: $(“选择器”);
2、支持css1 到 css3 所有选择器;
3、完善的处理机制,无需判断引用的元素是否存在。
二、jQuery选择器分类
1、基本选择器
#id → $("#test") //选取id为test的元素
.clss →$(".test")
element →$("p") //选取所有<p>元素
* → $("*") //选取所有元素
$("div,span,p.myclass"); //选取这些所有的元素
2、层次选择器
$("div span"); //选择div中所有span元素
$("div>span"); //选择div下所有的span子元素
$(".one+div"); //选择class为one的下一个div同辈元素(选取紧接在class为one的元素后的div元素)
//只选择该元素后的一个兄弟元素,相当于 $(".one").next("div");
$("#two~div"); //选取id为two的元素后的所有<div>同辈元素;相当于 $("#two").nextAll("div");
3、过滤选择器
3.1 基本过滤选择器
$("div:first"); //选取所有div元素中的第一个<div>元素
$("div:last"); //选取所有div元素中的最后一个<div>元素
$("intput:not(.test)"); //选取class不是test的input元素
$("input:even"); //选取索引是偶数的input元素,索引从0开始数
$("input:odd"); //选取索引是奇数的input元素
$("input:eq(0)"); //选取索引等于0的input元素
$("input:gt(2)"); //选取索引大于2(不包括2)的input元素
$("input:lt(2)"); //选取索引小于2(不包括2)的input元素
$(":header"); //选取网页中所有h1,h2,h3.....
$("div:animated"); //选取正在执行动画的div元素
$(":focus"); //选取当前获取焦点的元素
3.2内容过滤选择器
$("div:contains('我')"); //选取含有文本“我”的div元素
$("div:empty"); //选取不包含子元素和文本元素的div空元素
$("div:has(p)"); //选取含有<p>元素的div元素
$("div:parent"); //选取拥有子元素(包括文本元素)的div元素
3.3可见性过滤选择器
$(":hidden"); //选取所有不可见元素,包括<input type="hidden" />,display:none,visiblity:hidden 等元素。
//如果只想选取input元素,可使用$("input:hidden");
$(":visible"); //选取所有可见元素
3.4 属性过滤选择器
$("div[id]"); //选取拥有属性id的元素
$("div[title=test]"); //选取属性title为test的div元素
$("div[title!=test]"); //选取属性title不等于test的div元素,包括没有属性title的div元素
$("div[title^=test]"); //选取属性title以test开始的div元素
$("div[title$=test]"); //选取属性title以test结束的div元素
$("div[title*=test]"); //选取属性title含有test的div元素
$("div[title|='en']"); //选取属性title等于en或以en为前缀(该字符串后跟一个连字符‘-’)的元素;
$("div[title~='uk']"); //选取属性title用空格分隔的值中包含字符uk的元素
$("div[id][title$='abc']"); //选取拥有属性id,并且属性title以“abc”结束的div的元素
3.5 子元素过滤选择器
$("div :nth-child(even)"); //选取每个div父元素下索引值是偶数的子元素
$("div :nth-child(odd)"); //选取每个div父元素下索引值是奇数的子元素
$("div :nth-child(2)"); //选取每个div父元素下索引值是2的子元素
$("div :nth-child(3n+1)"); //选取每个div父元素下索引值是(3n+1)的元素(n从1开始算起)
$("ul li:first-child"); //选取每个<ul>中第一个li元素
$("ul li:last-child"); //选取每个<ul>中最后一个li元素
$("ul li:only-child"); //在<ul>中选取是唯一子元素的li元素
3.6 表单对象属性过滤选择器
$("#form1 :enabled"); //选取id为“form1”的表单内所有可用元素
$("#form1 :disabled"); //选取id为“form1”的表单内所有不可用元素
$("input:checked"); //选取所有被选中的input元素
$("select option:selected"); //选取所有被选中的选项元素
----------
$(":input"); //选取所有input,textarea,select和button元素
$(":text"); //选取所有单行文本框
$(":password"); //选取所有密码框
$(":radio"); //选取所有单选框
$(":checkbox"); //选取所有复选框
$(":submit"); //选取所有提交按钮
$(":image"); //选取所有图像按钮
$(":reset"); //选取所有重置按钮
$(":button"); //选取所有按钮
$(":file"); //选取所有上传域
$(":hidden"); //选取所有不可见元素
三、注意事项
1、选择请含有“·”、“#”、“(”、“]”等特殊字符串,需要在特殊字符前加转义符号 \ 。
<div id="id[1]">cc</div>
要写成 $("#id\\[1\\]")
2、jQuery 1.3.1版本后不用在属性选择器前添加“@”符号
3、选择器中含有空格要注意
$(".test :hidden"); // 选取class为test的元素里面的隐藏元素
$(".test:hidden"); // 选取隐藏的 class为test的元素