如何使用JavaScript获取指定class的div中data-oid属性的数字值
解决方法
- 核心思路:先通过CSS选择器匹配所有同时包含指定类名的div元素,再遍历提取每个元素的
data-oid属性值,按需转换为数字类型即可。
浏览器环境运行代码(页面已渲染完成时使用)
// 匹配所有符合类名要求的div元素 const targetDivs = document.querySelectorAll('div.QnS3qe.OUw7Vd.yIinVd.rAR0Uc'); // 遍历提取data-oid值,返回结果数组 const oidList = Array.from(targetDivs).map(div => { const oidStr = div.dataset.oid; // 普通数字转换:如果oid长度超过16位不建议用,会出现精度丢失 // return Number(oidStr); // 大数字转换:无精度丢失,适配你给出的超长oid场景 return BigInt(oidStr); // 不需要转数字直接返回字符串就使用 return oidStr }); // 输出结果 console.log(oidList);
注意:你给出的HTML示例存在标签未闭合问题,若你需要直接从原始HTML字符串中提取值,可使用下方解析HTML字符串的方案:
// 替换为你的原始HTML字符串 const htmlStr = `<div class="QnS3qe OUw7Vd yIinVd rAR0Uc" data-oid="100018429050627276346" jsaction="click:hFzPaf;"><div class="qt0M0c"><img class="jJzip" <div class="QnS3qe OUw7Vd yIinVd rAR0Uc" data-oid="103817096990403408962" jsaction="click:hFzPaf; <div class="QnS3qe OUw7Vd yIinVd rAR0Uc" data-oid="1038170969904034563" jsaction="click:hFzPaf; <div class="QnS3qe OUw7Vd yIinVd rAR0Uc" data-oid="103817096990403408807" jsaction="click:hFzPaf;`; // 创建临时DOM容器解析HTML字符串 const tempContainer = document.createElement('div'); tempContainer.innerHTML = htmlStr; // 后续提取逻辑和上方一致 const targetDivs = tempContainer.querySelectorAll('div.QnS3qe.OUw7Vd.yIinVd.rAR0Uc'); const oidList = Array.from(targetDivs).map(div => BigInt(div.dataset.oid)); console.log(oidList);
内容的提问来源于stack exchange,提问作者TRAM COK
相关产品推荐
相关产品推荐

