I'm trying to simulate clicking on the 'Custom range' tab using JavaScript from the console.
But $('#overlap-manager-root > div > [attribute="CustomRange"]') fails to retrieve it.
This is odd to me because $('#overlap-manager-root > div button') successfully picks out the 2 buttons.
I'm using https://api.jquery.com/attribute-equals-selector/ for reference.
CodePudding user response:
The > combinator is for direct descendants. This means the element after the > needs to be in the parent element (the element named before >) directly and not in some child element.
For example, #overlap-manager-root > div > [data-value="CustomRange"] would match
<div id="overlap-manager-root">
<div>
<button data-value="CustomRange"></button>
</div>
</div>
But would not match
<div id="overlap-manager-root">
<div>
<div id="someotherdiv">
<button data-value="CustomRange"></button>
</div>
</div>
</div>
Removing the > will make it look for any element within the subhierarchy and not just the direct children.
So switch the selector to
#overlap-manager-root > div [data-value="CustomRange"]
and this should find your element.

