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

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

相关推荐
愚公搬代码2 小时前
【愚公系列】《Web应用安全》001-VMware的安装
前端·安全
xiaohaiAIgeo2 小时前
【2026年】HG/T 20656-2024化工暖通空调设计规范:新版标准的变化与影响
java·前端·javascript·科普知识
立少→万能汉编2 小时前
用“立少→超文本”写静态网页,标签<倍>
服务器·前端·javascript
weixin_431600442 小时前
NestJS 入门(7):生命周期钩子——构造函数和 `OnModuleInit` 差在哪?
前端·后端·学习·node.js·nest.js
你挚爱的强哥3 小时前
【chromeDownload】自定义组件:多用于登录框底部提供下载Chrome谷歌浏览器的链接
前端·vue.js·chrome
cindershade3 小时前
用原生 HTML5 视频与 Canvas 实现浏览器端视频抽帧封面
前端
笨鸟先飞,勤能补拙3 小时前
Web 服务器与计算机网络全景原理
运维·服务器·前端·网络·人工智能·计算机网络·web安全
NutShell Wang3 小时前
Wails v3 Beta 实战:用显式对象模型重写你的第一个 Go 桌面应用
前端·人工智能·go·vibe coding
daols883 小时前
vue 甘特图 vxe-gantt 任务条拖拽自动更新日期
javascript·vue.js·甘特图
cindershade3 小时前
前端国际化工程实践:语言包拆分、动态加载与日期数字格式统一
前端