query-relative

QuerySelector with relative pseudos :next, :prev, :parent, :closest. Also standalone closest, prev, next and parent.


Keywords
querySelector, selector, dom, query, engine, element, closest, sizzle, selector engine, previous, next, parent, polyfill, scope, children
License
Unlicense
Install
npm install query-relative@3.0.6

Documentation

query-relative Build Status Code Climate

Relative query, an enhanced query—a handy replacement for querySelector.

  1. Provides relative pseudos: :parent, :closest, :next and :prev.

  2. Fixes immediate children selector > *, which is unavailable in query.

  3. Returns Array instead of NodeList in multiple query, so you can do forEach on result.

  4. Polyfills :scope pseudo.

  5. Provides standalone closest, parent, prev and next via require('query-relative/<pseudo>').

  6. Accepts other elements as a selector, for example, to find within a set.

  7. Fully compliant with query.

Install

Use browserify, duo, component or alike to use query-relative.

$ npm install query-relative

var query = require('query-relative');

//or require selectively
var closest = require('query-relative/closest');

Use

var q = require('query-relative');

//disable active item
q(':closest(.item):parent > .active', linkElement).classList.remove('active');

//enable current item
q(':closest(.item)', linkElement).classList.add('active');

//disable interactions
q(':root .container', linkElement).classList.add('no-interactions');

//select item within children (unable with querySelector)
q('> .active', container);


//inline svg images
var inject = require('svg-inject');

q.all('img[src$=".svg"]').forEach(inject);

API

query(selector, [el]);
query.all(selector, [el]);

closest( el [, selector|element], checkSelf, within );
next( el [, selector|element] );
prev( el [, selector|element] );
Parameter Type Default Description
el Node, NodeList, Array, window or nothing. document An element or list of elements to perform query on. If omitted — document is used.
selector string Regular CSS selector with possible additional pseudos: :prev, :next, :parent, :closest(selector?), :root.
element Node An element to match in looking up.
multiple bool false Return list of elements instead of a single element.

NPM