UNPKG

@sugarcoated/fondant-aim

Version:
32 lines (26 loc) 1.21 kB
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;