茄子:如何让祖辈下的所有标签。

问题描述 投票:0回答:1

我想抓住所有 img 标签,但我的实现并没有打印出任何一个指定的父标签下的任意级别的嵌套兄弟姐妹。el.

<div class='grand'>
    <div>
        <img src='1.png'>
    </div>
    <div>
        <div>
            <img src='2.png'>
        </div>
    </div>
    <img src='3.png'>
</div>

到目前为止,我的实施。

let images = $('div.grand').siblings().find('img')
images.each((i, el) => {
    console.log($(el).html()) //prints empty string
})

本质上,我想得到与 soup.findAll('img')BeautifulSoup 在python中,我想从一个指定的父标签中抓取任意级别嵌套的所有img标签。

javascript jquery cheerio
1个回答
1
投票

你的代码没有打印出空字符串--没有打印出 任何each因为没有匹配的元素。

如果要找到与选择符匹配的元素是与另一个选择符匹配的元素的后裔,可以在它们之间加一个空格。这里,对于 img的后裔 .grand你会用 .grand img:

$('.grand img').each((i, el) => {
    console.log(el.attribs.src)
});

结果:

1.png
2.png
3.png

0
投票

你很接近了!执行你需要的东西。

$(".grand img").each(function() {
  const src = $(this).attr("src")
  console.log(src)
})

这利用了... $(this) 访问 src 被引用对象的

.grand img 意味着访问元素中所有的子元素,其类别为 grand

© www.soinside.com 2019 - 2024. All rights reserved.