获取父级不是 class 的元素

Get Element that Parent not a class

我想 return javascript 中的一个元素,它的父元素中没有 class。

例如,我想获取以下代码片段中 没有 'parent' 的子 class 元素作为 class 对于父元素:

<div>
   <div class= "parent">
      <div class="child">
         Not to be selected 
      </div>
   </div>
   <div>
     <div class="child">
        To be selected
     </div>
   </div>
</div>

我试图通过量角器中的 xpath return 它

您可以使用 :not 选择器。

console.log(document.querySelectorAll(':not(.parent) > .child'));
<div>
   <div class= "parent">
      <div class="child">
         Not to be selected 
      </div>
   </div>
   <div>
     <div class="child">
        To be selected
     </div>
   </div>
</div>

有几种方法可以做到这一点。要么你检查 class 是否存在。

var elementList = [];
document.querySelectorAll("div.child").forEach(function(e) {
  var parent = e.parentElement;
  if(parent.classList == null || !parent.classList.contains("parent")) {

    elementList.push(e);
  }
})
console.log(elementList);

如果父 class 是特定的,您可以使用 css :not 属性

var elementList = document.querySelectorAll("div:not(.parent) > div.child");
console.log(elementList);