Javascript 干杯:如何让祖父母管理所有标签

Javascript 干杯:如何让祖父母管理所有标签,javascript,jquery,cheerio,Javascript,Jquery,Cheerio,我想从指定的父标记中获取任意嵌套同级下的所有img标记,但我的实现没有打印出任何el <div class='grand'> <div> <img src='1.png'> </div> <div> <div> <img src='2.png'> </div> </div> &l

我想从指定的父标记中获取任意嵌套同级下的所有
img
标记,但我的实现没有打印出任何
el

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

本质上,我希望获得与python中的
BeautifulSoup
soup.findAll('img')
相同的结果。

您的代码不会打印空字符串-它不会打印每个
中的任何内容,因为没有匹配的元素

要查找与选择器匹配的元素,这些元素是与另一个选择器匹配的元素的后代,请在它们之间放置一个空格。这里,对于从
.grand
下降的
img
s,您可以使用
.grand img

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

1.png
2.png
3.png

你很接近!要执行您需要的操作:

$(".grand img").each(function() {
  const src = $(this).attr("src")
  console.log(src)
})
这将利用
$(This)
访问被引用对象的
src
属性


.grand img
意味着使用
grand

$('div.grand>div>img')类访问元素中的所有子元素。
el.attribs.src
???我想你打字有误。我不认为有所谓的
attribs
这不是一个打字错误,代码运行良好-请随意安装Cheerio并亲自查看。记住,这是在节点中,
el
不是一个HTMLElement,而是一个Cheerio元素。
$(".grand img").each(function() {
  const src = $(this).attr("src")
  console.log(src)
})