Class

NodeList (engine/model)

@ckeditor/ckeditor5-engine/src/model/nodelist

class

Provides an interface to operate on a list of nodes. NodeList is used internally in classes like Element or DocumentFragment.

Filtering

Properties

  • readonly

    length : number

    Number of nodes contained inside this node list.

  • readonly

    maxOffset : number

    Sum of offset sizes of all nodes contained inside this node list.

  • private

    _nodes : Array<Node>

    Nodes contained in this node list.

  • private

    _offsetToNode : Array<Node>

    This array maps numbers (offsets) to node that is placed at that offset.

    This array is similar to _nodes with the difference that one node may occupy multiple consecutive items in the array.

    This array is needed to quickly retrieve a node that is placed at given offset.

Methods

  • internal

    constructor( [ nodes ] )

    Creates a node list.

    Parameters

    [ nodes ] : Iterable<Node>

    Nodes contained in this node list.

  • Symbol.iterator() → IterableIterator<Node>

    Iterable interface.

    Iterates over all nodes contained inside this node list.

    Returns

    IterableIterator<Node>
  • getNode( index ) → null | Node

    Gets the node at the given index. Returns null if incorrect index was passed.

    Parameters

    index : number

    Returns

    null | Node
  • getNodeAtOffset( offset ) → null | Node

    Gets the node at the given offset. Returns null if incorrect offset was passed.

    Parameters

    offset : number

    Returns

    null | Node
  • getNodeIndex( node ) → null | number

    Returns an index of the given node or null if given node does not have a parent.

    This is an alias to index.

    Parameters

    node : Node

    Returns

    null | number
  • getNodeStartOffset( node ) → null | number

    Returns the offset at which given node is placed in its parent or null if given node does not have a parent.

    This is an alias to startOffset.

    Parameters

    node : Node

    Returns

    null | number
  • indexToOffset( index ) → number

    Converts index to offset in node list.

    Throws CKEditorError model-nodelist-index-out-of-bounds if given index is less than 0 or more than length.

    Parameters

    index : number

    Returns

    number
  • offsetToIndex( offset ) → number

    Converts offset in node list to index.

    Throws CKEditorError model-nodelist-offset-out-of-bounds if given offset is less than 0 or more than maxOffset.

    Parameters

    offset : number

    Returns

    number
  • toJSON() → unknown

    Converts NodeList instance to an array containing nodes that were inserted in the node list. Nodes are also converted to their plain object representation.

    Returns

    unknown

    NodeList instance converted to Array.

  • internal

    _insertNodes( index, nodes ) → void

    Inserts given nodes at given index.

    Parameters

    index : number

    Index at which nodes should be inserted.

    nodes : Iterable<Node>

    Nodes to be inserted.

    Returns

    void
  • internal

    _removeNodes( indexStart, howMany ) → Array<Node>

    Removes one or more nodes starting at the given index.

    Parameters

    indexStart : number

    Index of the first node to remove.

    howMany : number

    Number of nodes to remove.

    Defaults to 1

    Returns

    Array<Node>

    Array containing removed nodes.

  • internal

    _removeNodesArray( nodes ) → void

    Removes children nodes provided as an array. These nodes do not need to be direct siblings.

    This method is faster than removing nodes one by one, as it recalculates offsets only once.

    Parameters

    nodes : Array<Node>

    Array of nodes.

    Returns

    void