jQuery选择器之层级选择器

若要通过DOM 元素之间的层次关系来获取元素,如后代元素,子元素,相邻元素和同辈元素,使用jQuery的层次选择器将会是最佳选择。
jQuery层次选择器和CSS的层次选择器相同,他们都是根据获取元素与其父元素,子元素,兄弟元素等的关系而构成的选择器。
jQuery中有四种层次选择器:

  1. 后代选择器
  2. 子选择器
  3. 相邻元素选择器
  4. 同辈元素选择器

最常用的是后代和子选择器。

名称描述返回值示例
后代选择器选取父元素里的所有后代元素元素集合$("#menu span")选取menu下的所有元素
子选择器选取父元素下的子元素元素集合$("#menu>span")选取menu下的子元素
相邻元素选择器选择紧邻元素的元素元素 集合$(“h2+d1”)选取紧邻

元素之后的同辈元素

同辈元素选择器选取指定元素 之后的所有同辈元素元素集合$(“h2~d1”)选取

元素之后所有的同辈元素

示例:代码来自:https://blog.csdn.net/ljp1919/article/details/65626964

<!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>

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值