PS:选择器主要用在dom元素的选择上,而dom方法主要用在链式操作上。

 

1. eq(index|-index)选择指定索引的元素

2. filter(表达式)筛选指定表达式的元素

3. first()选择第一个元素

4. last()选择最后一个元素

5. is()检测是否元素返回布尔值

6. has()保留包含特定后代的元素,去掉那些不含有指定后代的元素

7. not()从匹配的元素集合中移除指定的元素。

8. map()将一组元素转换成其他数组

9. slice(start, end)根据指定的下标范围,选取匹配的元素集合,结果为[s,e).

 

实例:

<p class=”first”>第1个p</p>
    <p>第2个p</p>
    <p>第3个p</p>
    <p>第4个p</p>
    <p>第5个p</p>
    <p>第6个p</p>
 
<script>
    $(“p”).eq(0).css(“background”, “red”);
 
    $(“p”).filter(“:odd”).css(“background”, “red”);
 
    $(“p”).filter(“.first”).css(“background”, “red”);
 
    $(“p”).first().css(“background”, “red”);
 
    $(“p”).last().css(“background”, “red”);
 
    $(“p”).click(function() {
        if($(this).is(“.first”)) {
            $(this).css(“background”, “red”);
        }
    });
 
    $(“p”).not(“:first”).css(“background”, “red”);
    //返回值是数组,每个值以,分割
    $(“p”).map(function() {
        return $(this).val();
    }).get().join(“,”);
 
    $(“p”).slice(1, 3).css(“background”, “red”);
</script>

dom遍历查找

1. children()选取子元素

2. parent()选取父元素

3. parents()选取祖先元素

4. parentsUntil()所有的父辈元素,直到遇到匹配的那个元素为止 1.6+

5. offsetParent()返回父元素中第一个其position设为relative或者absolute的元素,仅对可见元素有效

6. next()选择后面紧临的兄弟元素

7. nextAll()查找当前元素之后所有的同辈元素

8. nextUntil()所有的同辈元素,直到遇到匹配的那个元素为止 1.6+

9. prev()前一个兄弟元素

10. prevAll()前面所有的兄弟元素

11. prevUntil()所有的兄弟元素,直到遇到匹配的那个元素为止 1.6+

12. siblings()前后所有的兄弟元素

13. closest()从元素本身开始,在DOM 树上逐级向上级元素匹配,并返回最先匹

配的祖先元素

14. contents()元素的子元素,包括文字和注释节点

15. end()终止在当前链的最新过滤操作,并返回匹配的元素的以前状态

16. andself()1.8版本中已废弃

17. addBack()添加堆栈中元素集合到当前集合,一个选择性的过滤选择器

18. each()遍历一个jQuery对象,为每个匹配元素执行一个函数


实例:

<div id=”outer”>
    outer
    <div id=”wrap” style=”position:absolute;left:10px;top:10px;”>
    wrap
        <div>111</div>
        <div>222</div>
        <p id=”p1″>第1个p<span>span111</span></p>
        <p id=”p2″>第2个p</p>
        <p>第3个p</p>
        <div>div标签</div>
    </div>
</div>
 
<script>
    $(“#wrap”).children().not(“div”).css(“background”, “red”);
 
    $(“#p1”).parent().css(“background”, “red”);
 
    $(“#p1”).parents(“#outer”).css(“background”, “red”);
 
    $(“#p1”).offsetParent().css(“background”, “red”);
 
    //选择后面紧临的兄弟元素
    $(“#p1”).next().css(“background”, “red”);
 
    $(“#p1”).nextAll().not(“div”).css(“background”, “red”);
 
    $(“#p2”).prev().css(“background”, “red”);
 
    $(“#p2”).prevAll().css(“background”, “red”);
 
    //p2的所有兄弟元素
    $(“#p2”).siblings().css(“background”, “red”);
 
    $(“span”).parent().css(“background”, “red”).end().css(“background”, “blue”);
 
    $(“#p1”).nextAll().addBack().css(“background”, “red”);
 
</script>

 

 实例:jquery表格隔行变色

<script>
    $(“#table tr”).filter(“:odd”).css(“background”, “red”)
    .end().filter(“:even”).background(“background”, “yellow”);
</script>

 

选择器的优化准则

 

 1.优先使用id选择器

    2.在class选择器前添加标签名, 如<p class=”a”>ll</p>   $(‘p.a’);

    3.采用find(),而不使用上下文查找

    4.强大的链式操作比缓存更快

    5.从左至右的模型1.3+版本更新