首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在next.js中使用DOMParser?

如何在next.js中使用DOMParser?
EN

Stack Overflow用户
提问于 2021-06-10 13:26:02
回答 1查看 473关注 0票数 0

我想操纵一个html字符串,在vanillaJS中我会这样做:

代码语言:javascript
复制
  let HTMLString = '<p>hello</p>
                            <style> 
                             p{
                               color:black
                              }
                            <p>world</p>
                             '
    const parser = new DOMParser();
    const doc = parser.parseFromString(HTMLString, "text/html");
    doc.querySelectorAll('style').forEach(item => item.remove())

这在react中也有效,但我相信因为next编译服务器端它只是抛出DOMParser is not defined,我试过像html-react-parser这样的包,他们只是将html解析成react元素,然后提供非常有限的功能,我最后的办法是使用正则表达式,但我认为这不是一个好主意。

在这方面有任何帮助都会很好,谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-08-04 14:42:07

您可以尝试使用node-html-parser组件,因为类似的原因,我在next.js项目中使用了该组件:https://www.npmjs.com/package/node-html-parser

我们的想法是在服务器端的getStaticProps()函数中使用它,如下所示:

代码语言:javascript
复制
import { parse } from 'node-html-parser';

const root = parse('<ul id="list"><li>Hello World</li></ul>');
console.log(root.querySelector('#list'));

正如您所看到的,您可以使用标准的ES6查询选择器遍历这个虚拟生成的dom,而且还有更多的选项,所以我发现这个选项非常强大。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67915232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档