使用节点并具有类似内容:
const carsforsale = Array.from(document.querySelectorAll(div > p, div > a, div> div > h1))
return carsforsale.map(elem => elem.innerText)
假设我想从<p>
和<h1>
捕获innerText,而不是从<a>
捕获,因为我只想从<a>
捕获href属性,而innerText将是使用map函数时也返回,用不必要的信息填充数组。
在查询选择器函数上是否有简便的方法?
或者甚至是在map函数上执行此操作的简单方法?
答案 0 :(得分:2)
请注意,Array.from
接受第二个参数,这是一个映射器函数-每当您有一个Array.from
后跟一个.map
时,您都可以将其压缩为一个{{1} }。
在mapper函数中,您只需要检查要迭代的元素的Array.from
:
tagName
还要注意,当您使用字符串时,需要将它们括在定界符中,例如return Array.from(
document.querySelectorAll('div > p, div > a, div> div > h1'),
elem => (
elem.tagName === 'A' ? elem.href : elem.innerText
)
);
,'
或"
。 (`
将产生document.querySelectorAll(div > p, div > a, div> div > h1)
)
一个旁注,您可能想用SyntaxError
而不是textContent
。在大多数情况下,innerText
是innerText
的{{3}}版本。