# [ajquery.js](https://git.coolaj86.com/coolaj86/ajquery.js) The fastest, most lightweight, fewest dependency jQuery alternative. \ **New**: Now typed, Ai-enhanced, and better than ever! Development Build: 721B (types + comments) \ Production Build: 117B (min + gz) ## Example Usage Provides modern, advanced CSS4-compatible query selection: ```js console.log("innerText:", $("p:nth-child(2").innerText); ``` ## Install ### via GitHub ```bash my_ver="v3.0.3" mkdir ./vendor/ curl -fsSL "https://raw.githubusercontent.com/coolaj86/ajquery.js/${my_ver}/ajquery.js" \ -o ./vendor/ajquery.js # Lighthouse-optimized npx -p uglify-js@3 uglifyjs ./vendor/ajquery.js -o ./vendor/ajquery.min.js ``` ```html ``` ### via CDN ```html ``` Bundler-optimized: ```html ``` Tree-shaking-optimized: ```html ``` ### 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.$$; ``` ## 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 const head = $("head"); const stylesheets = $$('link[rel="stylesheet"]', head).map(console.log); ``` ## Benchmarks ![ajquery-benchmarks](https://user-images.githubusercontent.com/122831/126774421-1ee009f4-d16d-4710-b041-f19035ff8c35.png "it's over 9000") ## 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.