jq: dom的查询

父元素

parent(selecor) --> 直接父元素

        <!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>dom的查询</title>
</head>
<body>
    <div>
        <ul>
            <li>li1</li>
            <li>li2</li>
            <div>
                <span>span1</span>
            </div>
            <li>li3</li>
            <li>li4</li>
            <li>li5</li>
            <span>span2</span>
        </ul>
    </div>
    <script src="http://code.jquery.com/jquery-3.4.1.js"></script>
    <script>
         console.log( $('span').parent() )
    </script>
</body>
</html>
      

v2-5f4cdc84cc71364db9dc35e829a94350_b.jpg

可以传css选择器指定:

        console.log( $('span').parent('div') )

      

v2-13df6cd5b0ac3bcf17e85df9c791de17_b.jpg
提醒: 在下面的元素中,我已经把ul中的子元素span去掉了。

parents(selecor) --> 祖先元素

        console.log( $('span').parents() )

      

v2-f132118a0d4f316ad2de0a1c00899047_b.jpg

默认选择当前元素的所有祖先,传参css选择器可以指定。

closest(selecor|jQuery Object|element) -->最近的selector元素(必选)

选择当前元素的最近的指定父元素(可以越级)。

        console.log( $('span').closest('div') )

      

v2-9ad99de7628f12f2785c1f604aa642c2_b.jpg

offsetParent() --> 查找最近有定位的附近元素,无参数

        console.log( $('span').offsetParent() )

      

v2-7e67131d8af437c09da7646a8a10a690_b.jpg

子元素

children(selector) --> 找子元素(不包括后代),可传参指定

        console.log( $('ul').children() )
console.log( $('ul').children('.item') )

      

v2-74e24b29fec8831c0e5f6249226b22e8_b.jpg

find() --> 找后代元素

        console.log( $('ul').find('.span1') )

      

v2-3d683fa1d527dcdad6cb4816db5b6899_b.jpg

我们发现jq对象中还有一个prevObject属性,这是上一级(这里的上级是ul)的节点,由其我们可以在继续调用ul下的子元素

        $('ul').find('li:eq(3)').css('color', 'red').prevObject.find('li:eq(2)').css('color', 'blue')

      

v2-1ffd233db1ce169e65520786ae769785_b.jpg

这个方法已经被封装在end()方法中,可以使用end()操作。

end() --> 回退功能

        $('ul').find('li:eq(3)').css('color', 'red').end().find('li:eq(2)').css('color', 'blue').end().find('li:eq(1)').css('color', 'pink')

      

v2-d0e520223bbabc66cf3ba9b94f120885_b.jpg

add() --> 同级添加到jq对象中的

可以传select选择器 element元素 jq对象 html

如果我们要写这样两行代码:

        $('li:first').css('background', 'orange');
$('li:last').css('background', 'orange');

      

可以使用add()使用链式方式:

        $('li:first').add('li:last').css('background', 'orange');

      

v2-3953a45a4dff81d9b60fbacfeab30cff_b.jpg

addBack() -> 在链式调用的时候返回加上前一个元素。

比如给第二个设置一个样式,第三四个设置一个样式,现在想把第二三四设置另一个样式。

        $('li:eq(1)').css('background', 'orange').nextAll().css('background', 'pink').addBack().css('color', '#fff');

      

v2-ace25d0b06c14de67a5c736717a11996_b.jpg

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值