Skip to content

Instantly share code, notes, and snippets.

@carefree-ladka
Created February 1, 2025 18:18
Show Gist options
  • Save carefree-ladka/e5d603b12c73923380f7b53f036801be to your computer and use it in GitHub Desktop.
Save carefree-ladka/e5d603b12c73923380f7b53f036801be to your computer and use it in GitHub Desktop.
JQuery Library using ES6 Class
class MiniQuery {
constructor(selector) {
this.elements = document.querySelectorAll(selector);
}
css(property, value) {
this.elements.forEach(el => el.style[property] = value);
return this; // Enable chaining
}
text(content) {
if (content === undefined) {
return this.elements[0]?.textContent;
}
this.elements.forEach(el => el.textContent = content);
return this;
}
html(content) {
if (content === undefined) {
return this.elements[0]?.innerHTML;
}
this.elements.forEach(el => el.innerHTML = content);
return this;
}
addClass(className) {
this.elements.forEach(el => el.classList.add(className));
return this;
}
removeClass(className) {
this.elements.forEach(el => el.classList.remove(className));
return this;
}
on(event, callback) {
this.elements.forEach(el => el.addEventListener(event, callback));
return this;
}
off(event, callback) {
this.elements.forEach(el => el.removeEventListener(event, callback));
return this;
}
static ajax({ url, method = "GET", data = null, success, error }) {
fetch(url, {
method,
headers: { "Content-Type": "application/json" },
body: data ? JSON.stringify(data) : null
})
.then(res => res.json())
.then(data => success && success(data))
.catch(err => error && error(err));
}
}
// Shorter alias for convenience
const $ = (selector) => new MiniQuery(selector);
// Example Usage
$(document).ready = (callback) => document.addEventListener("DOMContentLoaded", callback);
// Example: Manipulating elements
$(document).ready(() => {
$(".title").css("color", "blue").text("Hello, MiniQuery!");
$(".btn").on("click", function () {
$(".title").addClass("highlight");
});
});
// Example: AJAX Request
MiniQuery.ajax({
url: "https://jsonplaceholder.typicode.com/posts/1",
success: (data) => console.log("Data received:", data),
error: (err) => console.error("Error:", err)
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment