如何使用 JavaScript 通过数据选择器在 HTML DOM 对象数组中查找元素?

Bac*_*cko 4 javascript arrays find selector

我有一个 HTML DOM 对象数组:

\n\n
// Console output\n\n(3) [\xe2\x80\xa6]\n0: <div data-selector="5">\xe2\x80\x8b\n1: <div data-selector="9">\xe2\x80\x8b\n2: <div data-selector="2">\xe2\x80\x8b\n3: <div data-selector="6">\xe2\x80\x8b\n4: <div data-selector="13">\xe2\x80\x8b\nlength: 5\n<prototype>: Array []\n
Run Code Online (Sandbox Code Playgroud)\n\n

如何使用 JavaScript 找到(并返回)等于data-selector9<div data-selector="9">\xe2\x80\x8b)的 HTML 对象?

\n

小智 5

这可以解决你的问题。

array.find(item => item.dataset.selector === '9');
Run Code Online (Sandbox Code Playgroud)

解释:

Javascript 允许您使用datasethtml 中的数据属性来访问。也就是说,它们有这样的模式data-*

因此,如果您有一个如下所示的 html 文件:

<html>
  <div id="root">
    <div data-selector="5"></div>
    <div data-selector="9"></div>
    <div data-selector="2"></div>
    <div data-selector="6"></div>
    <div data-selector="13"></div>
  </div>
</html>
Run Code Online (Sandbox Code Playgroud)

您可以div在 javascript 文件中获取 root 的 id:

const root = document.querySelector('#root');

// get array of div elements inside root
const tagsArray = [...root.children];

// finally, retrieve the specific element you need
const selectedItem = tagsArray.find(elem => elem.dataset.selector === '9');

// A simple check
console.log(selectedItem); // => <div data-selector="9"></div>
Run Code Online (Sandbox Code Playgroud)