【问题标题】:Formatting text of individual choices in selectInput dropdown menu在 selectInput 下拉菜单中格式化单个选项的文本
【发布时间】:2019-04-02 21:53:06
【问题描述】:

我想格式化 selectInput() 下拉菜单中显示的各个选项的文本。我有一个带有 html 属性的文本字符串列表:

myChoices_list <- c("<b>choice 1</b>", "<b>choice 2</b>", "<i>choice 3 </i>", "<i>choice 4</i>", "<<p style=\"text-indent: 20px\">choice 5</p>")

html 属性要求对每个字符串应用粗体、斜体和缩进。我尝试在“选择”选项中使用 HTML() 函数应用属性,但没有成功。

ui <- fluidPage(
sidebarPanel(
  selectInput(inputID = "myChoice", "Choice:"
             , choices = HTML(myChoices_list))
  )
) 

虽然通过在服务器段的输出中将“转义”选项设置为 FALSE,这些格式在 mainPanel 中正常工作,但该选项似乎不适用于 selectInput() 中的下拉菜单。

我认为解决方案可能与 tags$style 有关,但我对闪亮的结构和文本格式的指定不熟悉。它也与How to style an single individual selectInput menu in R Shiny? 不同,因为 html 格式已经是列表的一部分。实际列表也很大。

【问题讨论】:

标签: html css r shiny


【解决方案1】:

为什么不使用 jQuery 呢?

$('#DropdownSelectID').change(function () {
  var selectedVal = $('#DropdownSelectID :selected').val();

  if (selectedVal == '1') {
     $("#DropdownSelectID").css('cssText', 'font-weight: bold; color: blue');
  }
  else if (selectedVal == '2') {
     $("#DropdownSelectID").css('cssText', 'color: red');
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>

<select id='DropdownSelectID'>
  <option value='0'>-- Select --</option>
  <option value='1'>Hi</option>
  <option value='2'>Hello</option>
</select>

【讨论】:

  • 嗨,这如何适用于 Shiny 的具体情况?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-06
  • 1970-01-01
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多