---
name: "up.element.createNodesFromHTML"
area: "API"
kind: "JavaScript function"
parent: "up.element module"
visibility: "experimental"
url: "https://unpoly.com/api/up.element.createNodesFromHTML"
---
<nav aria-label="Unpoly docs">[All docs](https://unpoly.com/index.md) · [up.element module](https://unpoly.com/api/up.element.md)</nav>

# up.element.createNodesFromHTML(html)

**This feature is experimental**. Please [share](https://github.com/unpoly/unpoly/discussions) your experiences so we know what to keep or change.

Parses a [list](https://unpoly.com/api/List.md) of [nodes](https://developer.mozilla.org/en-US/docs/Web/API/Node) from a string of HTML.

The returned list can be a mixed list of [`Element`](https://developer.mozilla.org/en-US/docs/Web/API/Element), [`Text`](https://developer.mozilla.org/en-US/docs/Web/API/Text), or [`Comment`](https://developer.mozilla.org/en-US/docs/Web/API/Comment) nodes.

<nav aria-label="Contents">

#### Contents

- [Example](#example)
- [Whitespace trimming](#whitespace)
- [Parameters](#parameters)
- [Return value](#return-value)

</nav>

## Example {#example}

```js
let list = up.element.createNodesFromHTML('foo <p>bar</p> baz') // result: NodeList(3)
list.length // result: 3
list[0] // result: Text "foo "
list[1] // result: Element "<p>bar</p>"
list[2] // result: Text " baz"
```

## Whitespace trimming {#whitespace}

Before parsing, whitespace will be trimmed from the beginning and end of the string. This prevents the creation of all-whitespace [`Text`](https://developer.mozilla.org/en-US/docs/Web/API/Text) nodes at the edges of the list:

```js
let list = up.element.createNodesFromHTML('  <p>bar</p>  ') // result: NodeList(1)
list.length // result: 1
```

No changes will be made to whitespace in the middle of the given string.

---

## Parameters {#parameters}

### html {#html}

(required)

A string of HTML to parse.

Type: string

---

## Return value {#return-value}

A list of [`Element`](https://developer.mozilla.org/en-US/docs/Web/API/Element), [`Text`](https://developer.mozilla.org/en-US/docs/Web/API/Text), or [`Comment`](https://developer.mozilla.org/en-US/docs/Web/API/Comment) nodes.

Type: [List](https://unpoly.com/api/List.md)<[Node](https://developer.mozilla.org/en-US/docs/Web/API/Node)>

