簡體   English   中英

如何 select 除所有元素外的所有元素<p>元素及其所有使用 JavaScript 的子元素?</p>

[英]How to select all elements except all <p> elements and all their children using JavaScript?

我想使用 javascript dom 選擇器方法,例如getElementsByTagName到 select 除了所有<p>元素及其所有子元素之外的所有元素,我將在某些網頁中使用它來滿足某些特定的抓取要求。

document.querySelectorAll('*:not(p, p *)')

:not(..) -偽選擇器將排除與括號中的選擇器匹配的元素。

另請參閱Mozilla 文檔:not()-pseudoselector

const elements = document.querySelectorAll('*'); // Selects all elements
let filteredElements = []; // array only with needed elements

for (let i = 0; i < elements.length; i++) {
  if (elements[i].tagName !== 'P' && !elements[i].matches('p  *')) {
    filteredElements.push(elements[i]); // Checks if processed element is not <p> or a child of it on any depth level
  }
}

像這樣的代碼應該可以完成這項工作。 線條幾乎是不言自明的,但我在那里添加了一些評論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM