代替innerText,innerHTML 获取querySelectorAll 的特定子元素

问题描述

在这两种情况下,我都获得了 html,但希望从列循环中获取 url,而不是将 html 作为字符串。 例如: <img src="../uploads/spooky/26785.jpg" data-src="../uploads/spooky/26785.jpg" class="Foo"> 应该是 => '../uploads/spooky/2687.jpg'

 const result = await page.$$eval('table tr.GridCell',rows => {
   return Array.from(rows,row => {
   const columns = row.querySelectorAll('td');
   return Array.from(columns,(column,i) => {
    if(i==2){
        // want src
        return column.innerHTML;
    }
    if (i==14 || i ==15){
        //want url
        return {name: column.innerText,url: column.innerHTML}
    }
    return column.innerText});
 });
});

解决方法

如果我理解正确,您需要 column.querySelector('img.Foo').getAttribute('src') 而不是 column.innerHTML