从HTML删除所选元素的简单方法

时间:2019-03-08 05:35:39

标签: javascript html

这是我自己的网站https://celestialbunny.github.io/frontend_02/,我正在尝试进行一些“转储”-通过普通的javascript从页面中删除某些元素。

我尝试过:

let body = document.body
let navs = document.querySelectorAll('nav');
let headers = document.querySelectorAll('header');
let footers = document.querySelectorAll('footer');
let imgs = document.querySelectorAll('img');
let as = document.querySelectorAll('a');
let links = document.querySelectorAll('link');
let scripts = document.querySelectorAll('script');

body.remove(navs);
body.remove(headers);
body.remove(footers);
body.remove(imgs);
body.remove(as);
body.remove(links);
body.remove(scripts);

在这种情况下,可以说我只做过

  1. let body = document.body;
  2. let navs = document.querySelectorAll('nav');
  3. body.remove(navs) 这将导致整个页面的删除。

我试图参考https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/remove上的文档,但我似乎无法理解为什么从“ body”中删除“ child”会导致“空白页”

如何删除特定元素而不影响其余元素?

3 个答案:

答案 0 :(得分:2)

您的语法不正确。你不需要身体。

img的示例:

const imgs = document.querySelectorAll('img');
[...imgs].forEach(e => e.remove());

如果使用document.querySelectorAll()选择HTML元素,则会返回NodeList。 NodeList与数组相似,但是您不能直接循环它。

要删除NodeList中的目标元素,您必须遍历List。

使用[...imgs]Array.from(imgs)将NodeList转换为数组。 现在,您可以遍历数组并删除其成员。

答案 1 :(得分:0)

您将索引传递到删除功能中。

在这里进行导航:

let navs = document.querySelectorAll('nav');

然后您有一个查询选择列表,一个导航列表

假定数组不为空,然后选择要从DOM中删除的一项:

navs.remove(0)

这将删除导航列表中的第一项。

答案 2 :(得分:0)

您给出的链接为.remove(),用于从集合中删除元素,并且该元素将要删除的元素索引作为参数。因此,要从您的身体中移除所有导航仪,您将不得不遍历所有导航仪并将其删除。

let navs = document.querySelectorAll('nav');
[...navs].forEach(n => n.remove());
<nav>Test</nav>
<nav>Test2</nav>
<div>Test3</div>