๐Ÿ‘”Node+ext

๐Ÿ”ฐ JS โŸฉ browser โŸฉ DOM โŸฉ type โŸฉ Node โŸฉ +ext

extend Node with custom methods.

๐Ÿ‘‰ custom

// 2023.01.12 - 21:46 - add `elem()`
// 2023.01.12 - 08:35 - first version
// ---------------------------------------------------------

// export
export { $, $all, elem };

// โญ๏ธ $(): select first element
function $(selector, parent = document){
  return parent.querySelector(selector);
}

// โญ๏ธ $all(): select all element
function $all(selector, parent = document){
  return parent.querySelectorAll(selector);
}

// โญ elem(): create & config element
function elem(tagName, config) {
    const elem = document.createElement(tagName);
    if (config) config(elem);
    return elem;
}

// --------------------------
// โญ๏ธ Node extension
// --------------------------
// ๐Ÿ”ธ node.isTextNode
// ๐Ÿ”ธ node.isElementNode
// ๐Ÿ”น node.$()
// ๐Ÿ”น node.$all()

Object.defineProperties(Node.prototype, {

    // ๐Ÿ”ธ node.isTextNode
    isTextNode: {
        get() {
            return this.nodeType === Node.TEXT_NODE;
        },
    },

    // ๐Ÿ”ธ node.isElementNode
    isElementNode: {
        get() {
            return this.nodeType === Node.ELEMENT_NODE;
        },
    },

    // ๐Ÿ”น node.$()
    $: {
        value: function(selector){
            return $(selector, this);
        }
    },

    // ๐Ÿ”น node.$all()
    $all: {
        value: function(selector){
            return $all(selector, this);
        }
    },
});

Last updated