一、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的元素