【问题标题】:There is a way to use DOMParser().parseFromString() to create just the element HTML without it creates too the tags <html>, <head> and <body>?有一种方法可以使用 DOMParser().parseFromString() 来创建元素 HTML,而不会创建标签 <html>、<head> 和 <body>?
【发布时间】:2021-10-28 03:55:44
【问题描述】:

我从 html 页面“获取”一些内容以将其附加到我的内容中,代码没有问题,但我想知道是否有更好的方法来使用 DOMParse.parseFromString(),因为在我解析html 字符串它创建了一个不必要的基本 html 结构,例如 &lt;html&gt;, &lt;head&gt; and &lt;body&gt;,其中包含我的元素,因此在解析后我必须使用 querySelector() 将我的元素放入它创建的页面 html 中。 我的问题是有什么方法可以创建没有这个标签的元素? 我的代码是这样的:

function insertFormAddAlunoHTML(){
  fetch('./myElementHTML.html')
  .then((res)=> res.text()) // => <div id='myElement'></div>
  .then((stringElement)=>{
   return new DOMParser().parseFromString(stringElement, 'text/html');
      /*  adds a unecessary html structure like:
      <html>
        <head></head>
        <body>
        <div id='myElement'></div>
        </body>
      </html> */
    })
  .then((html)=>{
//get the element inside the page
    let myElement = html.querySelector('#myElement');
  }).catch((err)=> console.log(err));
}

【问题讨论】:

  • return new DOMParser().parseFromString(stringElement, 'text/html').body.firstElementChild ?
  • 我认为这比在接下来使用 querySelector 好得多,请发布作为答案,以便我可以将其标记为正确答案并关闭问题。 tks @Bravo

标签: javascript domparser


【解决方案1】:

你可以使用

return new DOMParser().parseFromString(stringElement, 'text/html').body.firstElementChild;

【讨论】:

    猜你喜欢
    • 2015-11-23
    • 2011-04-23
    • 1970-01-01
    • 2019-09-20
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    相关资源
    最近更新 更多