New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

domoperations

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

domoperations

A library of helper methods for working with the DOM.

  • 0.0.1
  • latest
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

domoperations NPM version

A library of helper methods for working with the DOM.

Installation

Simply do: npm install domoperations.

What is it?

It's simply a collection of helper methods for working with the DOM such as create, remove and assignAttributes.

Example

import {create, add, remove} from "domoperations";

let button = create("button", {disabled: true});
add(button);
remove(button);

Changelog:

v0.01:

  • First release!

Usage

Import it in your project like this:

import {create, ...} from "domoperations";                  // (standard) Transpiled to ES5, inlined dependencies.;
// or

import {create, ...} from "domoperations/external";        // Transpiled to ES5, external dependencies.
// or

import {create, ...} from "domoperations/native";          // Transpiled to ES5, native ES-modules, inlined dependencies.
// or

import {create, ...} from "domoperations/native-external"; // Transpiled to ES5, native ES-modules external dependencies.
// or

import {create, ...} from "domoperations/typed";           // Flow typings, ES-modules, external dependencies.

Documentation

Types

interface PropertyObject {
	[key: string]: any;
}

#nodeNameFromPrototype()

Extracts the node name for a prototype. For instance, calling the method with HTMLButtonElement will return 'button'.

Signature:

nodeNameFromPrototype (prototype: Class<HTMLElement>): string

Arguments:

  • prototype: Class<HTMLElement> - The prototype to extract the name from.

Returns:

string - The element name.

Throws:

  • TypeError - If the prototype is 'HTMLElement'.

  • TypeError - If the prototype is 'HTMLUnknownElement'.

  • TypeError - If the name couldn't be decoded for some reason.

Example
nodeNameFromPrototype(HTMLButtonElement); // returns "button";
nodeNameFromPrototype(MyCustomElement);   // returns 'my-custom-element' (or whatever the node name is).

#nodeNameFromInstance()

Extracts the node name for a instance of HTMLElement. For instance, an instance of HTMLButtonElement will return 'button'.

Signature:

nodeNameFromInstance (instance: HTMLElement): string

Arguments:

  • instance: HTMLElement - The node instance to extract the name from.

Returns:

string - The node name of the instance.

Throws:

  • TypeError - If the given instance isn't of type 'HTMLElement'.
Example
nodeNameFromInstance(document.createElement("p")); // returns "p";
nodeNameFromInstance(document.createElement("my-custom-element")); // returns 'my-custom-element'.

#remove()

Removes an element from the DOM.

Signature:

remove (element: HTMLElement): void

Arguments:

  • element: HTMLElement - The element that should be removed.

Returns:

boolean - Whether or not the removal were successful.

Throws:

  • TypeError - If the given element isn't of type 'HTMLElement'.
Example
let paragraph = document.createElement("p");
document.appendChild(button);
remove(paragraph); // returns true
remove(document.createElement("p")); // returns false - element not in the DOM.

#getFromTag()

Gets the element that matches the given tag name.

Signature:

getFromTag (tagName: string, all: boolean = false, root: Document|HTMLElement = document): HTMLCollection<*> | ?HTMLElement

Arguments:

  • tagName: string - The tag name to find a matching element for.

  • all: boolean - If true, all matches will be returned. default: false

  • root: Document|HTMLElement - The root element of the query. default: document

Returns:

HTMLCollection<*>|?HTMLElement - A HTMLCollection of matches if 'all' is true, otherwise the matched element, if any.

Throws:

  • TypeError - If the first argument is not of type 'string'.

  • TypeError - If the second argument is not of type 'boolean'.

  • TypeError - If the third argument is not of type 'Document' or 'HTMLElement'

Example
getFromTag("head"); // Returns the 'head' element.
getFromTag("p", true);    // Returns a HTMLCollection of all 'p' elements.

#getFromClassName()

Gets the element that matches the given CSS class name.

Signature:

getFromClassName (className: string, all: boolean = false, root: Document|HTMLElement = document): HTMLCollection<*> | ?HTMLElement

Arguments:

  • className: string - The CSS class name to find a matching element for.

  • all: boolean - If true, all matches will be returned. default: false

  • root: Document|HTMLElement - The root element of the query. default: document

Returns:

HTMLCollection<*>|?HTMLElement - A HTMLCollection of matches if 'all' is true, otherwise the matched element, if any.

Throws:

  • TypeError - If the first argument is not of type 'string'.

  • TypeError - If the second argument is not of type 'boolean'.

  • TypeError - If the third argument is not of type 'Document' or 'HTMLElement'

Example

getFromClassName("active");       // Returns the first element with a CSS class of "active".
getFromClassName("active", true); // Returns a HTMLCollection of all elements with a CSS class of "active".

#getFromId()

Gets the element that matches the given id.

Signature:

getFromId (id: string): ?HTMLElement

Arguments:

  • id: string - The id to find a matching element for.

Returns:

?HTMLElement - The matched element, if any.

Throws:

  • TypeError - If the first argument is not of type 'string'.
Example

getFromId("container"); // Returns the element with an id of 'container', if any.

#addTo()

Adds the given element to another elements local DOM. If 'unique' is true, the element will only be added if no direct child exists with the same node name.

Signature:

addTo (to: HTMLElement, toAdd: HTMLElement, unique: boolean = false): Node

Arguments:

  • to: HTMLElement - The element to add the element to.

  • toAdd: HTMLElement - The element that should be added.

  • unique: boolean - If true, the element will be added only if no direct child exists with the same node name. default: false

Returns:

HTMLElement - The added element. If 'unique' is true and another element with the same node name exists already, that one will be returned.

Throws:

  • TypeError - If the first argument isn't of type 'HTMLElement'.

  • TypeError - If the second argument isn't of type 'HTMLElement'.

Example

addTo(document.body, document.createElement("p")); // Adds the new "p" element to the body.
addTo(document.body, document.createElement("p"), true); // Does NOT add the new "p" element because it already exists as a direct child. Instead the existing one is returned.

#assignAttributes()

Sets the given attributes on the given element. Will automatically dash properties and handle booleans.

Signature:

assignAttributes (element: HTMLElement, attributes: PropertyObject): void

Arguments:

  • element: HTMLElement - The element that should get the attributes.

  • attributes: PropertyObject - The PropertyObject containing the attributes that should be set on the element.

Returns:

void

Throws:

  • TypeError - If the first argument isn't of type 'HTMLElement'.
Example
let button = document.createElement("button");
let customElement = dcoument.createElement("my-custom-element");
assignAttributes(button, {disabled: true}); // Sets the 'disabled' attribute on the button element.
assignAttributes(button, {disabled: false}); // Removes the 'disabled' attribute from the button element.
assignAttributes(customElement, {myCustomProp: "a string", anotherProp: 12}) // Sets the 'my-custom-prop="a string"' and 'another-prop="12"' attributes on the custom element instance.

#create()

Creates a new HTMLElement.

Signature:

create (elementName: string, properties?: PropertyObject, asAttributes: boolean = false): HTMLElement

Arguments:

  • elementName: string - The name of the element to create.
  • properties?: PropertyObject - Any properties to set on the element upon creation.
  • asAttributes: boolean - if true, the properties will be set as attributes instead of as properties. default: false

Returns:

HTMLElement - The created element .

Throws:

  • TypeError - If the first argument isn't of type 'string'.
  • TypeError - If the third argument isn't of type 'boolean'.
Example
create("p");                                  // Creates a 'p' element.
create("button", {disabled: true}, true);     // Creates a 'button' element and sets the 'disabled' property as an attribute.
create("img", {src: "images/funnycatz.png"}); // Creates a 'img' element and sets the 'src' property.   

Keywords

FAQs

Package last updated on 11 Sep 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc