I am trying to get an element of a page using the Console. Here is the code:
var ELEMENT = document.querySelector('div.flexCenter-3_1bcw.flex-1O1GKY.justifyCenter-3D2jYp.alignCenter-1dQNNs')
And I want to get a specific 'thing' from the element:
ELEMENT.__reactProps$81cjqqgfk4j
Unfortunately, the .__reactProps$ 'thing' changes every time I visit the page. Sometimes, it might be __reactProps$25jwbxmtle or __reactProps$94maqnwnty, and so on. What can I do here?
When I type ELEMENT.attributes, this comes up:
NamedNodeMap {0: class, class: class, length: 1}
0: class
ownerDocument: document
.__reactEvents$81cjqqgfk4j
The .__reactEvents item always ends with the same string as the .__reactProps item.
Is there a way to get the name of this item from the attributes? (Because that would be enough for me.)
You can use Object.keys(ELEMENT) to get all the keys for that element and than search for the needed one. This will extract prefix, the random ID:
var ELEMENT = document.querySelector('div.flexCenter-3_1bcw.flex-1O1GKY.justifyCenter-3D2jYp.alignCenter-1dQNNs');
let id = null;
for(let i = 0, keys = Object.keys(ELEMENT); i < keys.length; i++)
{
if ((id = keys[i].match(/^__react[^$]*(\$.+)$/)))
{
id = id[1];
break;
}
}
console.log(id);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With