要给出我想要的示例,请想象以下字符串:

$text = 'lorem ipsum <a href="/s/about">About us</a> lorem ipsum';

如果此字符串包含的锚定链接的href以/开头,请仅用其内部文本替换整个锚定链接.此函数的结果将返回以下内容:

lorem ipsum About us lorem ipsum

我将过go 使用的一个函数用于此目的:

function replaceAnyQueriedElementByItsText(markup, selector) {
  const doc = (new DOMParser)
    .parseFromString(markup, "text/html");

  doc
    .body
    .querySelectorAll(selector)
    .forEach(node => node
      .parentNode
      .replaceChild(
        document.createTextNode(node.text),
        node,
      )
    );

  return doc.body.innerHTML;
}

问题是这需要一个 Select 器,比如类.但我只想 Select 具有特定href的锚.我怎样才能做到这一点?

推荐答案

您可以使用a[href^="/"]作为 Select 器.因此,作为函数的参数,它将是:

replaceAnyQueriedElementByItsText(markup, 'a[href^="/"]');

例子:

function replaceAnyQueriedElementByItsText(markup, selector) {
  const doc = new DOMParser().parseFromString(markup, "text/html");

  doc.body.querySelectorAll(selector).forEach(node => 
    node.parentNode.replaceChild(
        document.createTextNode(node.text),
        node,
    )
  );

  return doc.body.innerHTML;
}

// 例子:
let markup = 'lorem ipsum <a href="/s/about">About us</a> lorem ipsum';
let stripped = replaceAnyQueriedElementByItsText(markup, 'a[href^="/"]');
console.log(stripped);

Javascript相关问答推荐

将现场录音发送到后端

Angular 订阅部分相互依赖并返回数组多个异步Http调用

JQuery Click事件不适用于动态创建的按钮

在我的index.html页面上找不到我的Java脚本条形图

Reaction Redux&Quot;在派单错误中检测到状态Mutations

按下单键和多值

Reaction-SWR-无更新组件

是否可以将Select()和Sample()与Mongoose结合使用?

使用自动识别发出信号(&Q)

对具有相似属性的对象数组进行分组,并使用串连的值获得结果

Pevent触发material 用户界面数据网格中的自动保存

如何让SVG图标在被点击和访问后改变 colored颜色 ,并在被访问后取消点击时恢复到原来的 colored颜色 ?

P5.js中矩形内的圆弧

$GTE的mongoose 问题

JSON Web令牌(JWT)错误:RSA密钥对的签名无效

暂停后只有一次旋转JS

使用Java脚本筛选数组中最接近值最小的所有项

为什么Reaction useEffect函数会将控制台日志(log)呈现两次

使用EXCEL.js模块+node.js分隔标题行中的列

我如何判断css@layer是否在css和Javascript中受支持?