All Projects → fregante → Select Dom

fregante / Select Dom

Licence: mit
Lightweight querySelector/All wrapper that outputs an Array

Programming Languages

typescript
32286 projects

select-dom npm downloads

Lightweight querySelector/All wrapper that outputs an Array

Version 7+ only supports browsers with iterable NodeLists. If you need IE support, stick to [email protected] or lower.

Install

npm install select-dom
// This module is only offered as a ES Module
import select from 'select-dom';

API

Note: if a falsy value is passed as baseElement, you'll always get an empty result (bd578b9)

select(selector[, baseElement = document])

Maps to baseElement.querySelector(selector), except it returns undefined if it's not found

select('.foo a[href=bar]');
// => <Element>

select('.foo a[href=bar]', baseElement);
// => <Element>

select('.non-existent', baseElement);
// => undefined

select.last(selector[, baseElement = document])

Like select(), except that it returns the last matching item on the page instead of the first one.

select.exists(selector[, baseElement = document])

Tests the existence of one or more elements matching the selector. It's like select(), except it returns a boolean.

select.exists('.foo a[href=bar]');
// => true/false

select.exists('.foo a[href=bar]', baseElement);
// => true/false

select.all(selector[, baseElements = document])

Maps to baseElements.querySelectorAll(selector) plus:

  • it always returns an array
  • baseElements can be a list of elements to query
select.all('.foo');
// => [<Element>, <Element>, <Element>]

select.all('.foo', baseElement);
// => [<Element>, <Element>, <Element>]

select.all('.foo', [baseElement1, baseElement2]);
// => [<Element>, <Element>, <Element>]
// This is similar to jQuery([baseElement1, baseElement2]).find('.foo')

Related

  • delegate-it - DOM event delegation, in <1KB.
  • doma - Parse an HTML string into DocumentFragment or one Element, in a few bytes.
  • Refined GitHub - Uses this module.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].