jQuery技术:renderDataTable选择包含值> 10的所有单元格并突出显示

我正在创建一个具有用户定义的行数和列数的dataTable。 我想循环遍历表中的所有单元格(减去第一列,其中包含名称),并在值大于10时突出显示/更改CSS.Shiny有一个很好的例子,可以定位特定的列(见下文)。 我假设我需要编写某种jQuery函数? 我是一个完整的jQuery新手,所以我试了一下,而且,它显然没有用(也见下文)。 任何帮助将不胜感激!

定位特定列的shiny示例:

rowCallback = I( 'function(row, data) { // Bold cells for those >= 5 in the first column if (parseFloat(data[0]) >= 5.0) $("td:eq(0)", row).css("font-weight", "bold"); }' ) 

我尝试编写循环遍历单元格的函数失败了:

 rowCallback = I(' function(row, data) { for each (i in 1:1000) { if (parseFloat(data[i]) > 10.0) $("td:eq(i)", row).css("color", "red");} }') 

    管理用它实现它(不安装DT):

     rowCallback = I( 'function(row, data) { $("td", row).each(function(i) { if (i == 0) return; // first column is row names if (parseFloat(data[i]) >= 10.0) $(this).css("color", "red"); }); }' ) 

    for each (i in 1:1000)看起来不像有效的JavaScript语法。 这是使用DT包的最小示例(将来不推荐使用shiny的DataTables函数)。 如果您不熟悉JavaScript(我们的目标是将来更容易 ),可能会有点难以理解。

     library(shiny) library(DT) shinyApp( ui = fluidPage(dataTableOutput('foo')), server = function(input, output) { output$foo = renderDataTable({ datatable(iris, options = list( rowCallback = JS( 'function(row, data) {', '$("td", row).each(function(i) {', 'if (i == 0) return; // first column is row names', 'if (parseFloat(data[i]) >= 3.0)', '$(this).css("color", "red");', '});', '}') )) }) } ) 

    renderDataTable选择包含值> 10的所有单元格并突出显示

    要在此时安装DT ,您需要:

     install.packages( c("DT", "shiny") type = "source", repos = c("https://yihui.name/xran", "https://cran.rstudio.com") ) 

    DT处于CRAN之后,您将能够通常从CRAN安装所有内容。

      以上就是jQuery教程分享renderDataTable选择包含值> 10的所有单元格并突出显示相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/jquerytutorial/532328.html

      (0)
      上一篇 2020年12月21日
      下一篇 2020年12月21日

      精彩推荐