Report an issue



Represents the iterator class. It can be used to iterate over all elements (or even text nodes in case of enlargeBr set to false) which establish "paragraph-like" spaces within the passed range.

// <h1>[foo</h1><p>bar]</p>
var iterator = range.createIterator();
iterator.getNextParagraph(); // h1 element
iterator.getNextParagraph(); // p element

// <ul><li>[foo</li><li>bar]</li>
// With enforceRealBlocks set to false the iterator will return two list item elements.
// With enforceRealBlocks set to true the iterator will return two paragraphs and the DOM will be changed to:
// <ul><li><p>foo</p></li><li><p>bar</p></li>



  • since 4.3.0 readonly

    activeFilter : filter

    Iterator's active filter. It is set by the getNextParagraph method when it enters a nested editable.

  • enforceRealBlocks : Boolean

    Whether the iterator should create a transformable block if the current one contains text and cannot be transformed. For example new blocks will be established in elements like <li> or <td>.

    Defaults to false

  • enlargeBr : Boolean

    Whether to include <br> elements in the enlarged range. Should be set to false when using the iterator in the CKEDITOR.ENTER_BR mode.

    Defaults to true

  • since 4.3.0 readonly

    filter : filter

    Default iterator's filter. It is set only for nested iterators.

  • forceBrBreak : Boolean

    Defaults to false

  • readonly

    range : range


  • constructor( range ) → iterator

    Creates an iterator class instance.


    range : range


  • getNextParagraph( [ blockTag ] )

    Returns the next paragraph-like element or null if the end of a range is reached.


    [ blockTag ] : String

    Name of a block element which will be established by the iterator in block-less elements (see enforceRealBlocks).

    Defaults to 'p'

  • since 4.4.6 private

    _getNextSourceNode( node, startFromSibling, lastNode ) → node

    Gets the next element to check or null when the lastNode or the range's root is reached. Bookmarks are skipped.


    node : node
    startFromSibling : Boolean
    lastNode : node