jQuery选择器之层级选择器

来源:互联网 发布:怎么让4g网络信号增强 编辑:程序博客网 时间:2024/05/16 14:27

背景:

我们可以把文档中的所有的节点节点之间的关系,用传统的家族关系来描述,可以把文档树当作一个家谱,那么节点与节点直接就会存在父子,兄弟,祖孙的关系了。
>(大于号)紧跟父子关系 如$("div > p")表示选择div下的直接层是p的节点。
+(加号) 紧跟兄弟关系 如$("div + p")表示选择div同层的左右相邻的p节点。
~ (波浪线)任意距离兄弟关系 如$("div + p")表示选择div同层的p节点。

选择器 描述 $(“parent > child”) 子选择器:选择所有指定”parent”元素中指定的”child”的直接子元素 $(“ancestor descendant”) 后代选择器:选择给定祖先ancestor元素的所有后代元素,包括子元素,孙子元素等全部后代元素 $(“prev + next”) 相邻兄弟选择器:选择所有紧接在prev元素后的next元素 $(“prev ~ siblings”) 一般兄弟选择器:匹配“prev”元素之后的所有兄弟元素。具有相同的父元素,并匹配过滤出“siblings”选择器。

层级选择器之间的相似与不同点:
1)层级选择器都有一个参考节点
2)后代选择器包含子选择器的选择的内容
3)一般兄弟选择器包含相邻兄弟选择的内容
4)相邻兄弟选择器和一般兄弟选择器所选择到的元素,必须在同一个父元素下.

示例:

<!DOCTYPE html><html><head>    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />    <title></title>    <link rel="stylesheet" href="imooc.css" type="text/css">    <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script></head><body>    <h2>子选择器与后代选择器</h2>    <div class="left">        <div class="aaron">            <p>div下的第一个p元素</p>        </div>        <div class="aaron">            <p>div下的第一个p元素</p>        </div>    </div>    <div class="right">        <div class="imooc">            <article>                <p>div下的article下的p元素</p>            </article>        </div>        <div class="imooc">            <article>                <p>div下的article下的p元素</p>            </article>        </div>    </div>    <script type="text/javascript">        //子选择器        //$('div > p') 选择所有div元素里面的直接子元素P        //$('div > p').css("border", "3px groove yellow");    </script>    <script type="text/javascript">        //后代选择器        //$('div  p') 选择所有div元素里面的p元素        $('div p').css("border", "1px groove red");    </script>    <h2>相邻兄弟选择器与一般兄弟选择器</h2>    <div class="bottom">        <div>兄弟节点div, +~选择器不能向前选择</div>        <span class="prev">选择器span元素</span>        <div>span后第一个兄弟节点div</div>        <div>兄弟节点div            <div class="small">子元素div</div>        </div>        <span>兄弟节点span,不可选</span>        <div>兄弟节点div</div>    </div>    <script type="text/javascript">        //相邻兄弟选择器        //选取prev后面的第一个的div兄弟节点        $('.prev + div').css("border", "3px groove red");    </script>    <script type="text/javascript">        //一般相邻选择器        //选取prev后面的所有的div兄弟节点        $(".prev ~ div").css("border", "3px groove blue");    </script></body></html>
0 0
原创粉丝点击