removeUI(selector, multiple = FALSE, immediate = FALSE,
  session = getDefaultReactiveDomain())


selector A string that is accepted by jQuery's selector (i.e. the string s to be placed in a $(s) jQuery call). This selector will determine the element(s) to be removed. If you want to remove a Shiny input or output, note that many of these are wrapped in divs, so you may need to use a somewhat complex selector -- see the Examples below. (Alternatively, you could also wrap the inputs/outputs that you want to be able to remove easily in a div with an id.)
multiple In case your selector matches more than one element, multiple determines whether Shiny should remove all the matched elements or just the first matched element (default).
immediate Whether the element(s) should be immediately removed from the app when you call removeUI, or whether Shiny should wait until all outputs have been updated and all observers have been run (default).
session The shiny session within which to call removeUI.


Remove a UI object from the app.


This function allows you to remove any part of your UI. Once removeUI is executed on some element, it is gone forever.

While it may be a particularly useful pattern to pair this with insertUI (to remove some UI you had previously inserted), there is no restriction on what you can use removeUI on. Any element that can be selected through a jQuery selector can be removed through this function.


## Only run this example in interactive R sessions if (interactive()) { # Define UI ui <- fluidPage( actionButton("rmv", "Remove UI"), textInput("txt", "This is no longer useful") ) # Server logic server <- function(input, output, session) { observeEvent(input$rmv, { removeUI( selector = "div:has(> #txt)" ) }) } # Complete app with UI and server components shinyApp(ui, server) }

See also