javascript - 在不使用正则表达式的情况下剪切一段 HTML?
问题描述
我正在尝试从某些 HTML 中删除一个部分。这是我正在使用的示例(某些特定的 div id 可能会更改,但想法就在这里):
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir="ltr">---------- Forwarded message ---------<br>data data data<br></div><br><br>
<div id="itemID" style="margin:0px"><div style="margin:0px">
<html i want to keep etc>
我想改变它,所以它看起来像:
<div id="itemID" style="margin:0px"><div style="margin:0px">
<html i want to keep etc>
作为另一个例子,这个 HTML:
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir="headerline">---------- Forwarded message ---------<br>data data data<br></div><br><br>
<div id="itemID2" style="margin:10px"><div style="margin:10px">
<html i want to keep etc>
应该变成这样:
<div id="itemID2" style="margin:10px"><div style="margin:10px">
<html i want to keep etc>
换句话说,Forwarded message
在第一行或第二行中查找,如果找到,则删除直到并包括该行的每一行。现在工作的 RegEx 看起来像这样:
var HTMLbodynew = HTMLbody.replace(/\n.+Forwarded Message.+\n/,"");
但是,正如臭名昭著的 Stackoverflow帖子中所述,我不应该使用正则表达式来解析 HTML。有没有办法在没有正则表达式的情况下做到这一点?
解决方案
尝试使用这个
document.querySelector("div[dir='ltr']").remove();
for (const brElement of document.querySelectorAll("br")) {
brElement.remove();
}
推荐阅读
- r - R ggpubr 使用全局环境对象?
- java - AsyncHttpClient 创建了太多 AsyncHttpClient-timer 线程
- ios - 如何在一个版本中使用 gitflow
- acumatica - 无法将所有 SOLine 项目创建到装运屏幕(SOShipLine-手动我们将非库存项目带到装运屏幕)
- python - 为没有分隔符和不同大小值数量的熊猫打开 .txt
- c++ - 如何使用 qopenglwidget 中的线将缓冲区中的一些顶点渲染为点,其余的顶点?
- kubernetes - 是否可以在 c# 中为 Kubernetes 对象创建自定义字段或子字段
- c# - 如何在 sns 短信中创建正确的换行符?
- javascript - DateTimePicker 验证提交操作
- c# - 后面代码中的 ComboBox SelectedValuePath 问题