ajquery.js/README.md

112 lines
2.1 KiB
Markdown
Raw Normal View History

2021-07-23 10:35:17 +00:00
# [ajquery.js](https://git.coolaj86.com/coolaj86/ajquery.js)
The fastest, most lightweight, fewest dependency jQuery alternative.
2024-08-29 23:29:03 +00:00
Development Build: 572B (types + comments) \
Production Build: 146B (min + gz)
2021-07-23 10:35:17 +00:00
2024-08-29 23:56:55 +00:00
## Example Usage
Provides modern, advanced CSS4-compatible query selection:
```js
console.log("innerText:", $("p:nth-child(2").innerText);
```
2021-07-23 10:35:17 +00:00
## Install
### via GitHub
```bash
2024-08-29 23:29:03 +00:00
my_ver="v3.0.0"
mkdir ./vendor/
2024-08-29 23:29:03 +00:00
curl -fsSL "https://raw.githubusercontent.com/coolaj86/ajquery.js/${my_ver}/ajquery.js" \
-o ./vendor/ajquery.js
2024-08-29 23:29:03 +00:00
# Lighthouse-optimized
npx -p uglify-js@3 uglifyjs ./vendor/ajquery.js -o ./vendor/ajquery.min.js
```
```html
<script src="/vendor/ajquery.js"></script>
```
### via CDN
2021-07-23 10:35:17 +00:00
```html
2024-08-29 23:29:03 +00:00
<script src="https://unpkg.com/ajquery@3.0.0/ajquery.min.js"></script>
```
Bundler-optimized:
```html
<script src="https://unpkg.com/ajquery@3.0.0/ajquery.min.cjs"></script>
```
Tree-shaking-optimized:
```html
<script src="https://unpkg.com/ajquery@3.0.0/ajquery.min.mjs"></script>
```
### via NPM
```sh
npm install --save ajquery@3
```
#### CommonJS
```js
let AJQuery = require("ajquery");
let $ = AJQuery.$;
let $$ = AJQuery.$$;
```
#### ESM
```js
import AJQuery from "ajquery";
let $ = AJQuery.$;
let $$ = AJQuery.$$;
2021-07-23 10:35:17 +00:00
```
## API
### `$(selector, [rootElement])`
Selects the first matching HTML element only (or `null`):
```js
const body = $("body");
const div1 = $("div", body);
```
### `$$(selector, [rootElement])`
Selects all matching elements (or an empty `NodeList`):
```js
2021-07-23 11:03:47 +00:00
const head = $("head");
2021-07-23 10:55:29 +00:00
const stylesheets = $$('link[rel="stylesheet"]', head).map(console.log);
2021-07-23 10:35:17 +00:00
```
2021-07-23 11:03:47 +00:00
## Benchmarks
2024-08-29 23:34:35 +00:00
![ajquery-benchmarks](https://user-images.githubusercontent.com/122831/126774421-1ee009f4-d16d-4710-b041-f19035ff8c35.png "it's over 9000")
2021-07-23 11:03:47 +00:00
2021-07-23 10:35:17 +00:00
## Compatibility
Written entirely in modern ECMAScript 3, and directly transpilable into ES5, ES6
and beyond (up to ES11) via Webpack, Babel, Rollup, React Native, and AWS
InfiniDash.
Works in [all browsers](https://caniuse.com/?search=queryselector) in living
memory.
See the full
[Browser Compatibility Matrix](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement#browser_compatibility)
on MDN.