ModelNodeList
Provides an interface to operate on a list of nodes. NodeList is used internally in classes like Element or ModelDocumentFragment.
Properties
length : numberreadonlymodule:engine/model/nodelist~ModelNodeList#lengthNumber of nodes contained inside this node list.
maxOffset : numberreadonlymodule:engine/model/nodelist~ModelNodeList#maxOffsetSum of offset sizes of all nodes contained inside this node list.
module:engine/model/nodelist~ModelNodeList#_nodesNodes contained in this node list.
_offsetToNode : Array<ModelNode>privatemodule:engine/model/nodelist~ModelNodeList#_offsetToNodeThis array maps numbers (offsets) to node that is placed at that offset.
This array is similar to
_nodeswith 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
constructor( [ nodes ] )internalmodule:engine/model/nodelist~ModelNodeList#constructorSymbol.iterator() → IterableIterator<ModelNode>module:engine/model/nodelist~ModelNodeList#Symbol.iteratorIterable interface.
Iterates over all nodes contained inside this node list.
Returns
IterableIterator<ModelNode>
module:engine/model/nodelist~ModelNodeList#getNodeGets the node at the given index. Returns
nullif incorrect index was passed.Parameters
index : number
Returns
null | ModelNode
getNodeAtOffset( offset ) → null | ModelNodemodule:engine/model/nodelist~ModelNodeList#getNodeAtOffsetGets the node at the given offset. Returns
nullif incorrect offset was passed.Parameters
offset : number
Returns
null | ModelNode
getNodeIndex( node ) → null | numbermodule:engine/model/nodelist~ModelNodeList#getNodeIndexgetNodeStartOffset( node ) → null | numbermodule:engine/model/nodelist~ModelNodeList#getNodeStartOffsetReturns the offset at which given node is placed in its parent or
nullif given node does not have a parent.This is an alias to
startOffset.Parameters
node : ModelNode
Returns
null | number
indexToOffset( index ) → numbermodule:engine/model/nodelist~ModelNodeList#indexToOffsetConverts index to offset in node list.
Throws CKEditorError
model-nodelist-index-out-of-boundsif given index is less than0or more thanlength.Parameters
index : number
Returns
number
offsetToIndex( offset ) → numbermodule:engine/model/nodelist~ModelNodeList#offsetToIndexConverts offset in node list to index.
Throws CKEditorError
model-nodelist-offset-out-of-boundsif given offset is less than0or more thanmaxOffset.Parameters
offset : number
Returns
number
toJSON() → unknownmodule:engine/model/nodelist~ModelNodeList#toJSONConverts
NodeListinstance to an array containing nodes that were inserted in the node list. Nodes are also converted to their plain object representation.Returns
unknownNodeListinstance converted toArray.
_insertNodes( index, nodes ) → voidinternalmodule:engine/model/nodelist~ModelNodeList#_insertNodesInserts given nodes at given index.
Parameters
index : numberIndex at which nodes should be inserted.
nodes : Iterable<ModelNode>Nodes to be inserted.
Returns
void
_removeNodes( indexStart, howMany ) → Array<ModelNode>internalmodule:engine/model/nodelist~ModelNodeList#_removeNodesRemoves one or more nodes starting at the given index.
Parameters
indexStart : numberIndex of the first node to remove.
howMany : numberNumber of nodes to remove.
Defaults to
1
Returns
Array<ModelNode>Array containing removed nodes.
_removeNodesArray( nodes ) → voidinternalmodule:engine/model/nodelist~ModelNodeList#_removeNodesArrayRemoves 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<ModelNode>Array of nodes.
Returns
void