获取父级不是类的元素

时间:2019-02-15 13:57:00

标签: javascript css xpath protractor element

我想在javascript中返回其父元素中没有类的元素。

例如,我想在以下代码片段中获得子类元素,即对于父元素没有“ parent”作为类

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

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

2 个答案:

答案 0 :(得分:4)

您可以使用: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>

答案 1 :(得分:3)

有几种方法可以做到这一点。您可以检查该班级是否在那里。

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);

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

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