1. unique-selector
Given a DOM node, return a unique CSS selector matching only that element
unique-selector
Package: unique-selector
Created by: ericclemmons
Last modified: Tue, 28 Jun 2022 04:42:20 GMT
Version: 0.5.0
License: MIT
Downloads: 94,729
Repository: https://github.com/ericclemmons/unique-selector

Install

npm install unique-selector
yarn add unique-selector

unique-selector

Build Status
CocoaPods
semantic-versioning

Given a DOM node, return a unique CSS selector matching only that element.
This is particularly useful when tracking in custom variables in analytics:

document.addEventListener('click', function(event) {
    var selector = unique(event.target);

    _gaq.push(['_trackEvent', 'Engagement', 'Click', selector]);
}, false);

Installation

NPM

Options

e.g.1 DomElement = <span id="test"></span>

import unique from 'unique-selector';

// Optional Options
options = {
    // Array of selector types based on which the unique selector will generate
    selectorTypes : [ 'ID', 'Class', 'Tag', 'NthChild' ]
}

unique( DomElement, options ); // #test

e.g.2 DomElement = <span test="2"></span>

import unique from 'unique-selector';

// Optional Options
options = {
    // Array of selector types based on which the unique selector will be generate
    selectorTypes : [ 'Attributes' ]
}

unique( DomElement, options ); // [test="2"]

e.g.3 DomElement = <div id="xyz" class="abc test"></div>

import unique from 'unique-selector';

// Optional Options
options = {
    // Regular expression of ID and class names to ignore
    excludeRegex : RegExp( 'xyz|abc' )
}

unique( DomElement, options ); // .test

Tests

$ npm run test

Contributing

Feel free to open issues, make suggestions or send PRs.
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code.

Contact

Avraam Mavridis : @avraamakis

Eric Clemmons : @ericclemmons

Releases

  • v0.1.0

    • Big refactor/rewrite using es6
    • More test + Change the test script
    • Script to compile es6 to es5 using babel
    • Ability to pass options for the selectorTypes based on which the unique selector will be generated, see the options
  • v0.0.4

    • Handle extra whitespace in className (#9)
  • v0.0.3

    • Add support for various <form> elements (#2)
  • v0.0.2

    • Fix bug with nth-child calculation
  • v0.0.1

    • Initial release

License

MIT

Bitdeli Badge

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code