【问题标题】:Use JSDOM to get text from a specific tag (Node.JS)使用 JSDOM 从特定标签中获取文本 (Node.JS)
【发布时间】:2021-07-21 20:59:50
【问题描述】:

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() 来检索标签中的链接和第二个跨度标签中的 John Doe 吗?如果是这样,我将如何获得确切的标签?

【问题讨论】:

    标签: javascript html request response jsdom


    【解决方案1】:

    你可以使用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);

    【讨论】:

      【解决方案2】:

      如果您可以编辑特定的 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>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-18
        • 1970-01-01
        • 2023-03-10
        • 2018-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多