有一种方法可以使用 DOMParser().parseFromString() 只创建元素 HTML 而不会创建标签 <html>、<head> 和 <body>?
There is a way to use DOMParser().parseFromString() to create just the element HTML without it creates too the tags <html>, <head> and <body>?
我从 html 页面“获取”了一些内容并将其附加到我的内容中,代码没有问题,但我想知道是否有更好的方法来使用 DOMParse.parseFromString() 因为在我解析 html 字符串之后,它创建了一个不必要的基本 html 结构,比如 <html>, <head> and <body>
,我的元素在里面,所以在解析之后我必须使用 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;
我从 html 页面“获取”了一些内容并将其附加到我的内容中,代码没有问题,但我想知道是否有更好的方法来使用 DOMParse.parseFromString() 因为在我解析 html 字符串之后,它创建了一个不必要的基本 html 结构,比如 <html>, <head> and <body>
,我的元素在里面,所以在解析之后我必须使用 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;