Query tags
As of now, the
tagQuery()function only supports simple CSS selectors …,,+,~,data-are not covered.All available query methods:
| Method | Description |
|---|---|
| children | Get all the direct descendants of each selected tag |
| find | Get all descendants of each selected tag |
| parent | Get the direct ancestors of each selected tag |
| parents | Get all parents of each selected tag |
| siblings | Get all siblings of each selected tag |
| filter | Subset selected tags with CSS selectors or R function |
| resetSelected | Reset set of selected tags to the root tag |
- Example: Access the third tab content element from a tabset panel with three tabs, a common case when building custom Shiny templates.
temp_tabs <- map(1:3, \(i) tabPanel(i, paste("Tab", i)))
tabs <- bs4Dash::tabsetPanel(.list = temp_tabs)
tabs<div class="tabbable">
<ul class="nav nav-tabs" data-tabsetid="2202">
<li class="nav-item">
<a href="#tab-2202-1" data-toggle="tab" data-value="1" class="nav-link active" data-target="#tab-2202-1">1</a>
</li>
<li class="nav-item">
<a href="#tab-2202-2" data-toggle="tab" data-value="2" class="nav-link" data-target="#tab-2202-2">2</a>
</li>
<li class="nav-item">
<a href="#tab-2202-3" data-toggle="tab" data-value="3" class="nav-link" data-target="#tab-2202-3">3</a>
</li>
</ul>
<div class="tab-content" data-tabsetid="2202">
<div class="tab-pane active" data-value="1" id="tab-2202-1">Tab 1</div>
<div class="tab-pane" data-value="2" id="tab-2202-2">Tab 2</div>
<div class="tab-pane" data-value="3" id="tab-2202-3">Tab 3</div>
</div>
</div>
tagQuery(tabs)$
# div element with CSS class "tab-pane"
find("div.tab-pane")$
filter(\(tag, index) tagGetAttribute(tag, "data-value") == 3)$
selectedTags()[[1]]
<div class="tab-pane" data-value="3" id="tab-2202-3">Tab 3</div>