2017-07-14 40 views
-1

我希望除了#bodyContentdiv页面的标识,除了<a>标签,使用ES6 Javascript(无jQuery)去除所有html标签。删除除了<a>标签与ES6 Javascript页面中的所有HTML标签?

该页面是一篇很长的维基百科文章,其中显示大量文本p,span以及img等等。

pspan里面,有很多a标签。实际上,约有99.9%的p标签至少包含1个a标签。

去除没有在他们里面的a用下面的代码的所有p标签是无效的,因为只有约0.1%的文字被删除:

for (const text of document.querySelectorAll("p")) { 
    if (!text.querySelector("a")) { 
     text.style.display = "none"; 
    } 
} 

我需要一个解决方案,将清除一切该页面的#bodyContentdiv,这不是a标签。

最终产品应该是一个只填写a链接的Wiki网页。

+2

这将是很容易做的'querySelectorAll(“A”)',并将其移动到您的期望的目标区域,然后设置原点元素。 – Bergi

回答

0

您可以从p元素中选择所有a元素,并用a元素替换内容。喜欢的东西:

const content = document.querySelector('#bodyContent'); 
let links = content.querySelectorAll('a'); 
content.innerHtml = ''; 
links.foreach(a => { 
    content.appendChild(a); 
});