检查元素内部是否存在具有特定类名的子元素的方法

html 复制代码
const jobList = document.querySelectorAll('.js-joblist');

const jobListDataId = Array.from(jobList).map(getDataId);


function getDataId(element) {
		// 只返回有按钮的 data-msgkey 值
		const hasInfoBtnItemSelcted = element.querySelector('.info-btn-item-selcted') !== null;
		return hasInfoBtnItemSelcted ? element.getAttribute('data-msgkey') : null;
	}

代码用途总结

这段代码的主要功能是从网页中筛选带有特定标记的工作列表项,并提取它们的data-msgkey属性值。

代码逻辑解析

const jobList = document.querySelectorAll('.js-joblist');

选取所有类名为js-joblist的DOM元素,返回一个NodeList对象。

const jobListDataId = Array.from(jobList).map(getDataId);

将NodeList转换为数组,并对每个元素调用getDataId函数进行处理。

function getDataId(element)

定义的处理函数,检查元素是否包含.info-btn-item-selcted子元素。

若存在则返回元素的data-msgkey属性值,否则返回null

最终结果

最终得到的jobListDataId是一个数组,包含所有符合条件(有.info-btn-item-selcted子元素)的.js-joblist元素的data-msgkey值,不符合条件的元素对应位置为null

相关推荐
To_OC11 小时前
LC 207 课程表:刚学图论那会儿,我连这是拓扑排序都没看出来
javascript·算法·leetcode
To_OC11 小时前
LC 208 实现 Trie 前缀树:曾被名字劝退,写完发现是送分题
javascript·算法·leetcode
天渺工作室12 小时前
实现一个adblock/adblock plus等浏览器广告拦截器检测插件
前端·javascript
阳光是sunny12 小时前
Vue 项目怎么做用户行为全链路监控?轻量插件方案详解
前端·面试·架构
ZhengEnCi13 小时前
Q04-Vite禁用CSS代码分割-解决生产环境样式加载顺序混乱问题
前端·vue.js·vite
九酒13 小时前
AI Agent 开发踩坑记:口播功能非得用 APP 原生实现吗?
前端·人工智能·agent
Jackson__14 小时前
做了一段时间的AI coding后,我终于搞清了 CLI 和 MCP 的区别
前端·agent·ai编程
IT_陈寒16 小时前
JavaScript项目实战经验分享
前端·人工智能·后端
用户479492835691517 小时前
6w star,GitHub 趋势第一的 Ponytail,这个agent插件到底在火什么
前端·后端
薛定喵的谔18 小时前
我开源了一个精致的 Next.js 博客模板:Skyplume
前端·前端框架·next.js