Skip to content
Back to top

# DOM

only mutool run

This represents an HTML or an DOM node. It is a helper class intended to access the DOM (Document Object Model) content of a Story object.

## Constructors

class DOM()

  You cannot create instances of this class with the new operator!

Instances of this class are returned by `Story.prototype.document()`.

## Instance methods

DOM.prototype.body()

  Return a DOM for the body element.

  Returns:

    DOM

      var result = xml.body()

DOM.prototype.documentElement()

  Return a DOM for the top level element.

  Returns:

    DOM

      var result = xml.documentElement()

DOM.prototype.createElement(tag)

  Create an element with the given tag type, but do not link it into the DOM yet.

  Arguments:

    - tag (`string`) – Tag name to use for element.

  Returns:

    DOM

      var result = xml.createElement("div")

DOM.prototype.createTextNode(text)

  Create a text node with the given text contents, but do not link it into the DOM yet.

  Arguments:

    - text (`string`) – Text contents to put into element.

  Returns:

    DOM

      var result = xml.createElement("Hello world!")

DOM.prototype.find(tag, attribute, value)

  Find the first element matching the tag, attribute and value. Set either of those to `null` to match anything.

  Arguments:

    - tag (`string`) – The tag of the element to look for.

    - attribute (`string`) – The attribute of the element to look for.

    - value (`string`) – The value of the attribute of the element to look for.

  Returns:

    DOM | null

      var result = xml.find("tag", "attribute", "value")

DOM.prototype.findNext(tag, attribute, value)

  Find the next element matching the tag, attribute and value. Set either of those to `null` to match anything.

  Arguments:

    - tag (`string`) – The tag of the element to look for.

    - attribute (`string`) – The attribute of the element to look for.

    - value (`string`) – The value of the attribute of the element to look for.

  Returns:

    DOM | null

      var result = xml.findNext("tag", "attribute", "value")

DOM.prototype.appendChild(dom, childDom)

  Insert an element as the last child of a parent, unlinking the child from its current position if required.

  Arguments:

    - dom (`DOM`) – The DOM that will be parent.

    - childDom (`DOM`) – The DOM that will be a child.

      xml.appendChild(dom, childDom)

DOM.prototype.insertBefore(dom, elementDom)

  Insert an element before this element, unlinking the new element from its current position if required.

  Arguments:

    - dom (`DOM`) – The reference DOM.

    - elementDom (`DOM`) – The DOM that will be inserted before.

      xml.insertBefore(dom, elementDom)

DOM.prototype.insertAfter(dom, elementDom)

  Insert an element after this element, unlinking the new element from its current position if required.

  Arguments:

    - dom (`DOM`) – The reference DOM.

    - elementDom (`DOM`) – The DOM that will be inserted after.

      xml.insertAfter(dom, elementDom)

DOM.prototype.remove()

  Remove this element from the DOM. The element can be added back elsewhere if required.

      var result = xml.remove()

DOM.prototype.clone()

  Clone this element (and its children). The clone is not yet linked into the DOM.

  Returns:

    DOM

      var result = xml.clone()

DOM.prototype.firstChild()

  Return the first child of the element as a DOM, or `null` if no child exist.

  Returns:

    DOM | null

      var result = xml.firstChild()

DOM.prototype.parent()

  Return the parent of the element as a DOM, or `null` if no parent exists.

  Returns:

    DOM | null

      var result = xml.parent()

DOM.prototype.next()

  Return the next element as a DOM, or null if no such element exists.

  Returns:

    DOM | null

      var result = xml.next()

DOM.prototype.previous()

  Return the previous element as a DOM, or null if no such element exists.

  Returns:

    DOM | null

      var result = xml.previous()

DOM.prototype.addAttribute(attribute, value)

  Add attribute with the given value, returns the updated element as a DOM.

  Arguments:

    - attribute (`string`) – Desired attribute name.

    - value (`string`) – Desired attribute value.

  Returns:

    DOM

      var result = xml.addAttribute("attribute", "value")

DOM.prototype.removeAttribute(attribute)

  Remove the specified attribute from the element, returns the updated element as a DOM.

  Arguments:

    - attribute (`string`) – The name of the attribute to remove.

  Returns:

    DOM

      xml.removeAttribute("attribute")

DOM.prototype.getAttribute(attribute)

  Return the element’s attribute value as a string, or null if no such attribute exists.

  Arguments:

    - attribute (`string`) – The name of the attribute to look up.

  Returns:

    string | null

      var result = xml.attribute("attribute")

DOM.prototype.getAttributes()

  Returns a dictionary object with properties and their values corresponding to the element’s attributes and their values.

  Returns:

    Object

      var dict = xml.getAttributes()

DOM.prototype.getText()

  only mutool run

  Returns the text contents of the node.

  Returns:

    string | null

      var text = xml.getText()

DOM.prototype.getTag()

  only mutool run

  Returns the tag name for the node.

  Returns:

    string | null

      var text = xml.getTag()