选择具有匹配数据属性的最近元素



我正在尝试创建具有存储其ID的数据属性的按钮。单击时,我想查找有关单击按钮的一些信息,并显示包含信息的相关模态。问题是客户端使用的是页面生成器,HTML中有比我所写的额外的代码。因此,当单击按钮时,实际上并不是在单击包含该属性的预期元素。有没有办法选择具有数据属性data idschool的最近元素?

例如:

<div data-idschool="1">
<button>I am being clicked!</button>
</div>

这是我的JS,我在其中找到了与JSON中的数据属性ID相关的信息,以提取当前不起作用的信息:

const popUpInfo = schoolInfo.find(
(x) => x.id == school.closest(dataset.idschool)
);

使用选择器字符串[data-idschool]获取元素,然后获取其数据集:

const schoolInfo = [
{ id: '1' }
];
const school = document.querySelector('button');
const popUpInfo = schoolInfo.find(
(x) => x.id == school.closest('[data-idschool]').dataset.idschool
);
console.log(popUpInfo);
<div data-idschool="1">
<button>I am being clicked!</button>
</div>

最新更新