@sugarcoated/fondant-aim
Version:
Target elements in the DOM.
32 lines (26 loc) • 1.21 kB
JavaScript
const Targets = require('@sugarcoated/fondant-targets');
const Target = require('@sugarcoated/fondant-target');
class Aim {
static at (atSomething) {
const $atId = document.getElementById(atSomething);
const atClass = document.getElementsByClassName(atSomething);
const atTag = document.getElementsByTagName(atSomething);
const atName = document.getElementsByName(atSomething);
const atQuery = document.querySelectorAll(atSomething);
let atFound;
if ($atId) return new Target($atId);
if (atClass.length || atTag.length) {
if (atClass.length > atTag.length) return new Targets(atClass);
if (atTag.length > atClass.length) return new Targets(atTag);
} else if (atTag.length || atName.length) {
if (atTag.length > atName.length) return new Targets(atTag);
if (atName.length > atTag.length) return new Targets(atName);
} else if (atName.length || atQuery.length) {
if (atName.length > atQuery.length) return new Targets(atName);
if (atQuery.length > atName.length) return new Targets(atQuery);
} else if (!atQuery.length) {
throw Error('Found nothing.');
}
}
}
module.exports = Aim;