This is my html
JavaScript
x
7
1
<!DOCTYPE html>
2
<html lang="en">
3
<body>
4
<div id='data'></div>
5
</body>
6
</html>
7
This is example html i want to fetch
JavaScript
1
20
20
1
<html amp="" lang="en">
2
<head> .</head>
3
<body>
4
<header amp-fx="float-in-top">
5
<div class="head-container"></div>
6
<div id="lang-list" hidden="" amp-fx="float-in-top"></div>
7
<main class="container">
8
<article class="post no-sidebar">
9
<div class="m-card single-page"></div>
10
</article>
11
<div class="clear"></div>
12
</main>
13
<footer role="contentinfo" class="site-footer no-padding--important">
14
<div class="container"></div>
15
</footer>
16
</div>
17
</header>
18
</body>
19
</html>
20
This is code i know how to fetch and append whole html to my id=’data’
JavaScript
1
7
1
const url = `https://www.example.com/`;
2
let response = fetch(url);
3
fetch(url)
4
.then(response => response.text())
5
.then(html => {document.getElementById('data').append(html)});
6
.catch((err) => console.log("Can’t access " + url + " response. Blocked by browser?" + err));
7
but i don’t want to append whole html but i only want to get class=”m-card single-page” of example.com and append to my id=’data’. I don’t know how to, please advice me, thanks you
Advertisement
Answer
As an approach several things could be used here:
- DOMParser https://developer.mozilla.org/en-US/docs/Web/API/DOMParser
- querySelector (to get some DOM element by selector) https://developer.mozilla.org/en-US/docs/Web/API/Element/querySelector
- outerHTML (to get HTML string from a DOM element you need) https://developer.mozilla.org/en-US/docs/Web/API/Element/outerHTML Please check the example with the part which getting some parts from HTML string (https://codepen.io/alekskorovin/pen/gOGpBVL):
JavaScript
1
6
1
const someHTML = '<main><h1>Some HTML with</h1> <div class="m-card single-page">Lorem dolorem</div></main>';
2
const parser = new DOMParser();
3
const parsedHTML = parser.parseFromString(someHTML, "text/html");
4
const partOfHTMLDOM = parsedHTML.querySelector('.m-card.single-page');
5
const partOfHTMLDOMString = partOfHTMLDOM.outerHTML;
6
console.log({parsedHTML, partOfHTMLDOM, partOfHTMLDOMString});