我正在尝试定位父节点,这是我代码中链接标记(a)的div,我已经尝试过target.parentNode,但是它不起作用,可能是因为我正在使用querySelectorAll?。到目前为止,我的代码是:

  function remove() {
    var target = document.querySelectorAll('a[data-type="data"]'), i;
     for (i = 0; i < target.length; i++) {
       if (target.length > 1) {
        target[i].remove();
       }
     }
  }
  remove();
HTML:
<div class="carousel-slide">
   <a data-type="data" data-type="image">
   <img class="img-responsive" src="./285-603.jpg">
   </a>
</div>
有任何想法吗?

最佳答案

执行querySelectorAll时出现问题,无需定义i querySelectorAll将获取所有a[data-type="data"],并且该函数将从DOM的节点中删除
编辑:要仅删除父parentNode.remove(),只需使用forEach函数获取所有a标记并删除其父。
运行下面的代码段。

function remove() {
  var target = document.querySelectorAll('a[data-type="data"]');
  target.forEach(function(anchors) {
    anchors.parentNode.remove();
    console.log('a tag with [data-type="data"] = Deleted')
  })
}
remove();
<div class="carousel-slide">
   <a data-type="data" data-type="image">
   <img class="img-responsive" draggable="false">
   Will be deleted
   </a>
</div>

<div class="carousel-slide">
   <a data-type="no" data-type="image">
   <img class="img-responsive" draggable="false">
   Will stay
   </a>
</div>

关于javascript - 如何获取和删除querySelectorAll的parentNode,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62945119/

10-12 13:15