通过 JavaScript 控制台获取项目时遇到问题

use*_*072 3 javascript console

我正在尝试使用控制台获取页面的元素。这是代码:

var ELEMENT = document.querySelector('div.flexCenter-3_1bcw.flex-1O1GKY.justifyCenter-3D2jYp.alignCenter-1dQNNs')
Run Code Online (Sandbox Code Playgroud)

我想从元素中获取特定的“东西”:

ELEMENT.__reactProps$81cjqqgfk4j
Run Code Online (Sandbox Code Playgroud)

不幸的是,.__reactProps$每次我访问该页面时,“事物”都会发生变化。有时,它可能是__reactProps$25jwbxmtle__reactProps$94maqnwnty,等等。我在这里能做什么?

当我输入 时ELEMENT.attributes,会出现以下内容:

NamedNodeMap {0: class, class: class, length: 1}
    0: class
        ownerDocument: document
            .__reactEvents$81cjqqgfk4j
Run Code Online (Sandbox Code Playgroud)

.__reactEvents项目始终以与该项目相同的字符串结尾.__reactProps

有没有办法从属性中获取该项目的名称?(因为这对我来说就足够了。)

van*_*owm 6

您可以使用Object.keys(ELEMENT)来获取该元素的所有键,然后搜索所需的键。这将提取前缀,即随机 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);
Run Code Online (Sandbox Code Playgroud)