使用 JQuery 选择与属性匹配的 div 失败

Selecting a div matching an attribute using JQuery is failing

我转到 https://www.tradingview.com/chart/?symbol=BINANCE:BTCUSDTPERP 并按 OPT+g(非 mac 时按 ALT+g)并出现 TimeRange 叠加层。

我正在尝试使用控制台中的 JavaScript 模拟单击​​ 'Custom range' 选项卡。

但是 $('#overlap-manager-root > div > [attribute="CustomRange"]') 检索失败。

这对我来说很奇怪,因为 $('#overlap-manager-root > div button') 成功地挑选出了 2 个按钮。

我正在使用 https://api.jquery.com/attribute-equals-selector/ 作为参考。

> combinator 用于直系后代。这意味着 > 之后的元素需要直接在父元素(在 > 之前命名的元素)中,而不是在某些子元素中。

例如,#overlap-manager-root > div > [data-value="CustomRange"] 将匹配

<div id="overlap-manager-root">
   <div>
       <button data-value="CustomRange"></button>
   </div>
</div>

但不匹配

<div id="overlap-manager-root">
   <div>
       <div id="someotherdiv">
          <button data-value="CustomRange"></button>
       </div>
   </div>
</div>

删除 > 将使其在子层次结构中查找任何元素,而不仅仅是直接子元素。

所以将选择器切换到

#overlap-manager-root > div [data-value="CustomRange"]

这应该能找到您的元素。