德布德
2021-09-10 17:26
采纳率: 40%
浏览 71
已结题

css选择器选择第N个匹配元素,像jquery的eq一样

我在使用python的pyppeteer时,click方法需要用到css选择器。但是一直没找到好的办法。举例元素结构如下:

<div class='aaa'>
    <div class='cd'>1</div>
    <div class='cd'>2</div>
    <div class='cd'>3</div>
</div>

<div class='aaa'>
    <div class='cd'>4</div>
    <div class='cd'>5</div>
    <div class='cd'>6</div>
    <div class='cd'>7</div>
<.div>

<div class='aaa'>
    <div class='cd'>8</div>
</div>

我看了很多资料都说用nth-child() ,但是完全匹配不出来。有没有办法直接按1、2、3、4、5、6、7、8的顺序定位,例如在jquery中,.cd:eq(4)就直接对应

4

  • 收藏

6条回答 默认 最新

  • 嘿!小老头 2021-09-10 17:30
    已采纳

    img

    已采纳该答案
    打赏 评论
  • 落落Plus 2021-09-10 17:30

    img


    先把这错误改改
    :nth-child(n) 可以的,好好看看哪里写错了

    1 打赏 评论
  • 德布德 2021-09-11 12:54

    问题已经解决,谢谢各位的热心解答,思路确实是用nth-child从外层开始一层层往里推。
    嘿!小老头和在下月亮有何贵干 两位老师的思路都是对的
    但是我在爬取网页时,实际情况比例子会复杂得多,自己没法一层层推。
    最后我采取的方法是,利用chrom浏览器,在开发者工具里,直接右键我所需要的元素,复制css selector,多复制几个,然后根据这几个来找到我所需要的css selector的规律

    1 打赏 评论
  • qq_16715661 2021-09-10 17:34
    打赏 评论
  • 在下月亮有何贵干 2021-09-10 17:35

    nth-child只能在同一层匹配,也就是匹配nth-child(1),你每个aaa底下的第1个cd都会被匹配,所以可以用nth-child先匹配第几个aaa再匹配第几个cd

    打赏 评论
  • 指尖跃动smile 2021-09-10 17:57

    多加几个类名就行了,css选择器也不建议写nth-child,最好直接加类名写样式

    打赏 评论

相关推荐 更多相似问题