微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 JSDOM 从特定标签 (Node.JS) 获取文本

如何解决使用 JSDOM 从特定标签 (Node.JS) 获取文本

HTML 响应:

<html>
  <head> </head>
  <body>
    <span style="font-size:30px">Name:</span>
    <span style="font-size:25px;border-radius: 10px;">John Doe</span>
    <h1>Stats</h1>
    <div>
      <p>info1</p>
      <p>info2</p>
      <p><a href="https://link.com">info3</a></p>
    </div>
  </body>
</html>

我是否会使用 querySelector() 来检索标签中的链接和第二个 span 标签中的 John Doe?如果是这样,我将如何获得确切的标签

解决方法

您可以按如下方式使用 DOMParser

const response = `<html>
  <head> </head>
  <body>
    <span style="font-size:30px">Name:</span>
    <span style="font-size:25px;border-radius: 10px;">John Doe</span>
    <h1>Stats</h1>
    <div>
      <p>info1</p>
      <p>info2</p>
      <p><a href="https://link.com">info3</a></p>
    </div>
  </body>
</html>`;

const doc = new DOMParser().parseFromString(response,"text/html");
console.log(doc.querySelector("a[href]").href);
console.log(doc.querySelector("span:nth-child(2)").textContent);

,

如果您可以编辑特定的 span 元素,请尝试以下操作:

  • 在第二个 span 元素上设置 ID 属性
  • 使用 getElementById 引用元素
  • 然后使用 textContent 获取文本

const name = document.getElementById('name').textContent

console.log(name)
<html>
  <head> </head>
  <body>
    <span style="font-size:30px">Name:</span>
    <span style="font-size:25px;border-radius: 10px;" id="name">John Doe</span>
    <h1>Stats</h1>
    <div>
      <p>info1</p>
      <p>info2</p>
      <p><a href="https://link.com">info3</a></p>
    </div>
  </body>
</html>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。