javascript - 通过 JavaScript 控制台查找项目时遇到问题
问题描述
嗨,我是 javascript 的初学者,所以我遇到了麻烦。我正在尝试使用控制台获取页面元素。这是代码:
var ELEMENT = document.querySelector('div.flexCenter-3_1bcw.flex-1O1GKY.justifyCenter-3D2jYp.alignCenter-1dQNNs')
我想从元素中得到一个特定的东西:
ELEMENT.__reactProps$81cjqqgfk4j
简单的?不完全的。每次访问该页面时, .__reactProps$ 都会发生变化。有时会是 __reactProps$25jwbxmtle 或者有时会是 __reactProps$94maqnwnty(你明白了)。我可以在这里做什么?
当我执行 ELEMENT.attributes 时,会出现以下情况:
NamedNodeMap {0: class, class: class, length: 1}
0: class
ownerDocument: document
.__reactEvents$81cjqqgfk4j
.__reactEvents 项始终以与 .__reactProps 项相同的内容结尾。有没有办法从属性中获取这个项目的名称(因为这对我来说已经足够了)
解决方案
您可以使用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);
推荐阅读
- php - 将数组元素删除到特定数量
- javascript - 所有幻灯片完成后如何停止循环?
- javascript - 将文件转换为 url 中的可下载文件 - javascript
- postman - 如果我不在请求之间设置延迟,纽曼请求将失败
- dbase - 如何解释 dBase (.dbf) 文件中的语言驱动程序名称?
- python - 当我重定向输出时,Python 程序不在 docker 容器的 shell 脚本中运行
- c - 使用 realloc 获得的扩展内存包含哪些内容?
- javascript - 如果值为 0,则谷歌图表隐藏堆栈
- rxjs - 在 Angular 6 rxjs 流中进行异步调用的最佳方法
- atom-editor - Atom Pakage 安装错误:binding.mkdir(pathModule._makeLong(path)