Dom\Element::insertAdjacentHTML

(No version information available, might only be in Git)

Dom\Element::insertAdjacentHTML — Parses a string as HTML or XML and inserts the result at a given position

Description

public function Dom\Element::insertAdjacentHTML(Dom\AdjacentPosition $where, string $string): void

Parses string as a fragment and inserts the resulting nodes at the position given by where, relative to this element. The fragment is parsed as HTML in an HTML document, and as XML in an XML document.

Parameters

where

A Dom\AdjacentPosition case that specifies where the nodes are inserted relative to this element.

string

The HTML or XML markup to parse. In an XML document it must be a well-formed XML fragment.

Return Values

No value is returned.

Errors/Exceptions

Throws a DOMException with code Dom\NO_MODIFICATION_ALLOWED_ERR if where is Dom\AdjacentPosition::BeforeBegin or Dom\AdjacentPosition::AfterEnd and this element has no parent, or its parent is the document.

Throws a DOMException with code Dom\SYNTAX_ERR if this element is in an XML document and string is not a well-formed XML fragment.

Examples

Example #1 Dom\Element::insertAdjacentHTML() example

<?php

$dom = Dom\HTMLDocument::createFromString(
    '<!DOCTYPE html><body><ul id="list"><li>Two</li></ul></body>',
    LIBXML_NOERROR
);

$list = $dom->getElementById('list');

$list->firstElementChild->insertAdjacentHTML(
    Dom\AdjacentPosition::BeforeBegin,
    '<li>One</li>'
);
$list->insertAdjacentHTML(
    Dom\AdjacentPosition::BeforeEnd,
    '<li>Three</li><li><b>Four</b></li>'
);

echo $list->outerHTML, "\n";

The above example will output:

<ul id="list"><li>One</li><li>Two</li><li>Three</li><li><b>Four</b></li></ul>
+add a note

User Contributed Notes

There are no user contributed notes for this page.