jerry



JavaScript


September 2017

jerry is a lightweight JavaScript DOM interaction Library, inspired by JQuery.


With this library, a user can:

  • Traverse and manipulate single or multiple DOM elements
  • Add and remove DOM elements
  • Handle DOM events
  • Make AJAX requests

DOM Node collection

$j returns an instance of a DOMNodeCollection. If a string is passed as an argument, $j will return a new DOMNodeCollection containing all of the HTML elements on the page that match the argument passed to it. If the argument is a function, or there are multiple functions, these will be stored in a queue, and executed consecutively once the document has fully loaded.

const DOMNodeCollection = require('./dom_node_collection');

window.$j = $j;

const queue = [];

document.addEventListener("DOMContentLoaded", () => {
  console.log('loaded!');
  queue.forEach((func) => {
    func();
  });
});

function $j(selector) {
  let nodeList;
  if (selector instanceof Function) {
    if (document.readyState === 'complete') {
      selector();
    } else {
      queue.push(selector);
    }
  } else if (selector instanceof HTMLElement) {
    return new DOMNodeCollection([selector]);
  } else {
    nodeList = document.querySelectorAll(selector);
    return new DOMNodeCollection(Array.from(nodeList));
  }
}