簡體   English   中英

如何遞歸選擇元素Javascript下的所有子項

[英]How to recursively select all children under an element Javascript

我需要一個函數來遞歸地選擇所有子元素,但如果它們具有“foo”屬性,則不會選擇元素(和那些元素的子元素)。

<section>
  <div>
   <span foo>
    <input>
   </span>
  </div>
  <p>
    <img>
  </p>
</section>
//should return [section, div, p, img]

我需要原始的 Javascript 請

編輯:我試過這樣的事情:

$tag.querySelectorAll(":not([foo])")

但 querySelectorAll(":not([foo])") 仍將返回未選擇元素的子元素。

您可以在此處使用element.querySelectorAll():not修飾符,以及[attr]選擇器:

var nonFooElements = parentElement.querySelectorAll("*:not([foo])");

請注意,這種調用的成本會適中,因為選擇器不是以 id 或類名開頭,所以不要大量調用。

我從這個答案改編了這個答案: https : //stackoverflow.com/a/21975970/5009210

暫無
暫無

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

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