9.3.0 • Published 6 months ago

select-dom v9.3.0

Weekly downloads
1,403
License
MIT
Repository
github
Last release
6 months ago

select-dom npm downloads

Lightweight querySelector/All wrapper that outputs an Array

Install

npm install select-dom
import {$, $$, lastElement, elementExists} from 'select-dom';

// And a stricter version
import {$, $optional} from 'select-dom/strict.js';

API

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

$(selector[, baseElement = document])

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

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

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

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

lastElement(selector[, baseElement = document])

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

elementExists(selector[, baseElement = document])

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

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

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

countElements(selector[, baseElement = document])

Counts the number of elements found on the page or in the base element. Just a shortcut over $$(selector).length

countElements('a');
// => 3

$$(selector[, baseElements = document])

Maps to baseElements.querySelectorAll(selector) plus:

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

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

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

/strict.js

The strict export will throw an error if the element is not found, instead of returning undefined. This is also reflected in the types, which are non-nullable:

import {$, $optional, $$, $$optional} from 'select-dom/strict.js';

const must: HTMLAnchorElement = $('.foo a[href=bar]'); //
const optional: HTMLAnchorElement | undefined = $optional('.foo a[href=bar]');


const oneOrMore: HTMLAnchorElement[] = $$('.foo a[href=bar]'); //
const zeroOrMore: HTMLAnchorElement[] = $$optional('.foo a[href=bar]');

Related

  • delegate-it - DOM event delegation, in <1KB.
  • doma - Parse an HTML string into DocumentFragment or one Element, in a few bytes.
9.3.0

6 months ago

9.2.0

7 months ago

9.1.1

8 months ago

9.1.0

8 months ago

9.0.1

8 months ago

9.0.0

2 years ago

8.0.0

2 years ago

7.1.1

4 years ago

7.1.0

4 years ago

7.0.0-6

4 years ago

7.0.0-5

4 years ago

7.0.0-4

4 years ago

7.0.0-3

4 years ago

7.0.0-2

4 years ago

7.0.0-1

4 years ago

7.0.0-0

4 years ago

7.0.0

4 years ago

6.0.2

5 years ago

6.0.1

5 years ago

6.0.0

6 years ago

5.1.0

6 years ago

5.0.2

6 years ago

5.0.1

6 years ago

5.0.0

6 years ago

4.2.2

6 years ago

5.0.0-0

6 years ago

4.2.1

6 years ago

4.2.0

6 years ago

4.2.0-3

6 years ago

4.2.0-2

6 years ago

4.2.0-1

6 years ago

4.2.0-0

6 years ago

4.1.3

7 years ago

4.1.2

7 years ago

4.1.1

8 years ago

4.1.0

8 years ago

4.0.0

8 years ago

3.0.2

9 years ago

3.0.1

9 years ago

3.1.0

9 years ago

1.0.1

9 years ago

0.0.1-security

9 years ago

2.0.0

9 years ago

0.0.0

12 years ago