【发布时间】:2021-03-09 05:13:19
【问题描述】:
我正在尝试使用 Node.JS 中的 JSDOM 编辑一些 HTML。我希望删除任何<blockquote>,它是至多围绕<div> 的一个子项。但我希望保留两个或更多 <div>s 内的任何 <blockquote> 标签。我已经阅读了this question,但我仍然感到困惑。您可以在此JSFiddle 中看到我尝试过的内容。这是原始的 HTML:
<html>
<div id="div1">
<blockquote>Text 1</blockquote>
</div>
<div id="div2">
<div id="div3">
<blockquote>Text 2</blockquote>
<div id="div4">
<blockquote>Text 3</blockquote>
</div>
</div>
</div>
<span onclick="removeblockquotes(this)">Change</span>
</html>
应该变成
<html>
<div id="div1">
Text 1
</div>
<div id="div2">
<div id="div3">
<blockquote>Text 2</blockquote>
<div id="div4">
<blockquote>Text 3</blockquote>
</div>
</div>
</div>
</html>
这是我迄今为止尝试过的功能,但它不起作用(没有任何块引用发生变化):
function removeblockquotes(e)
{
var x = document.querySelectorAll("blockquote");
x.forEach(y=>{
if (y.parentNode.parentNode==null){
y.parentNode.appendChild(x.innerHTML);
y.parentNode.removeChild(x);
};
});
}
【问题讨论】:
标签: javascript html node.js jsdom blockquote