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 []\nRun Code Online (Sandbox Code Playgroud)\n\n如何使用 JavaScript 找到(并返回)等于data-selector(9即<div data-selector="9">\xe2\x80\x8b)的 HTML 对象?
小智 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)