Skip to content

Instantly share code, notes, and snippets.

@c7x43t
Last active June 24, 2021 13:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save c7x43t/b66316b1eec6bf9a8fe1f7026a334447 to your computer and use it in GitHub Desktop.
Save c7x43t/b66316b1eec6bf9a8fe1f7026a334447 to your computer and use it in GitHub Desktop.
function serializeElementToSelector(element){
if(!element.dataset.hasOwnProperty('__serial_token__'))
element.dataset.__serial_token__=''+((Math.random()*1e9)<<0)+((Math.random()*1e9)<<0)+Date.now();
var tagName=element.tagName.toLowerCase();
var selector=tagName;
if(element.id!==''){
selector+='#'+element.id;
}
for(let cls of element.classList){
selector+='.'+CSS.escape(cls)
}
for(let attr of element.attributes){
if(attr.name!=="class"&&attr.name!=="id"){
var selector_='['+CSS.escape(attr.name)+'="'+CSS.escape(attr.value)+'"]';
try{
console.log(tagName+selector_)
document.querySelector(tagName+selector_);
selector+=selector_
}catch(err){}
}
}
return selector;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment