Selector.nextSibling Method

Selects succeeding sibling elements.

Syntax

nextSibling

Selector().nextSibling() → Selector

Finds the succeeding sibling elements of all nodes in the matched set.

nextSibling(index)

Selector().nextSibling(index) → Selector

Finds the succeeding sibling elements of all nodes in the matched set and filters them by index.

Argument Type Description
index Number The zero-based index. Elements are indexed beginning from the closest sibling. If index is negative, the index is counted from the end of the matched set.

nextSibling(cssSelector)

Selector().nextSibling(cssSelector) → Selector

Finds the succeeding sibling elements of all nodes in the matched set and uses a CSS selector to filter them.

Argument Type Description
cssSelector String The CSS selector string used to filter child elements.

nextSibling(filterFn, dependencies)

Selector().nextSibling(filterFn, dependencies) → Selector

Finds the succeeding sibling elements of all nodes in the matched set and uses a predicate to filter them.

Argument Type Description
filterFn Function The predicate used to filter the elements.
dependencies (optional) Object Functions, variables, or objects passed to the filterFn function.

See Filtering DOM Elements by Predicates.

Examples

// Selects all succeeding siblings of all 'a' elements.
Selector('a').nextSibling();

// Selects all closest succeeding siblings of all div elements.
Selector('div').nextSibling(0);

// Selects all furthest succeeding siblings of all pre elements.
Selector('pre').nextSibling(-1);

// Selects all p elements that are succeeding siblings of an hr element.
Selector('hr').nextSibling('p');

Filtering DOM Elements by Predicates

Functions that search for elements in the DOM tree allow you to use a filterFn predicate to filter the matched set.

The filterFn predicate is executed on the client side and accepts the following parameters:

Parameter Description
node The current matching node.
idx A matching node's zero-based index.
originNode A node from the left-hand selector's matched set whose parents/siblings/children are being iterated.
Selector('section').prevSibling((node, idx, originNode) => {
    // node === the <section>'s preceding sibling node
    // idx === index of the current <section>'s preceding sibling node
    // originNode === the <section> element
});

The dependencies parameter allows you to pass objects to the filterFn client-side scope where they appear as variables.

const isNodeOk = (node, idx, originNode) => { /*...*/ };

Selector('ul').prevSibling((node, idx, originNode) => {
    return isNodeOk(node, idx, originNode);
}, { isNodeOk });