This is an example source.
JavaScript
x
14
14
1
<div ref={this.mainRef}>
2
<div>
3
<ul>
4
<li role="option" id="1">A</li>
5
<li role="option" id="2">B</li>
6
<li role="option" id="3">C</li>
7
<li role="option" id="4">A</li>
8
<li role="option" id="5">B</li>
9
<li role="option" id="6">C</li>
10
11
</ul>
12
</div>
13
</div>
14
With this.mainRef
, how do I get the list of elements matching attribute of ‘role=option’?
Something like..
JavaScript
1
2
1
const selectableOptions = this.mainRef.children.search(role=option)
2
- I don’t want to go through the DOMs tree because the structure might get changed.
- I would like to “search” instead.
THANKS!
Advertisement
Answer
Please try below.
JavaScript
1
2
1
const divRef = useRef(null)
2
JavaScript
1
14
14
1
<div ref={divRef}>
2
<div>
3
<ul>
4
<li role="option" id="1">A</li>
5
<li role="option" id="2">B</li>
6
<li role="option" id="3">C</li>
7
<li role="option" id="4">A</li>
8
<li role="option" id="5">B</li>
9
<li role="option" id="6">C</li>
10
11
</ul>
12
</div>
13
</div>
14
JavaScript
1
2
1
const matches = divRef.current.querySelectorAll("li[role='option']");
2