Javascript 如何根据数据表中的行和列索引为多个单元格着色

Javascript 如何根据数据表中的行和列索引为多个单元格着色,javascript,r,shiny,dt,Javascript,R,Shiny,Dt,如果给定数据表中的多个单元格的行和列索引,我需要一种给它们着色的方法。我从中找到了解决办法。但这里的功能只能给一个单元格着色。我希望对它进行修改,以便它将行和列索引的向量作为参数,并为它们着色。非常感谢您的帮助。我附上下面的代码片段 changeCellColor <- function(row, col){ c( "function(row, data, num, index){", sprintf(" if(index == %d){", row-1),

如果给定数据表中的多个单元格的行和列索引,我需要一种给它们着色的方法。我从中找到了解决办法。但这里的功能只能给一个单元格着色。我希望对它进行修改,以便它将行和列索引的向量作为参数,并为它们着色。非常感谢您的帮助。我附上下面的代码片段

changeCellColor <- function(row, col){
  c(
    "function(row, data, num, index){",
    sprintf("  if(index == %d){", row-1),
    sprintf("    $('td:eq(' + %d + ')', row)", col),
    "    .css({'background-color': 'orange'});",
    "  }",
    "}"  
  )
}
datatable(iris, 
          options = list(
            dom = "t",
            rowCallback = JS(changeCellColor(1, 2))
          )
)
changeCellColor这是你想要的吗

library(DT)

changeCellsColor <- function(rows, cols){
  stopifnot(length(rows) == length(cols))
  c(
    "function(row, data, num, index){",
    sprintf("  var rows = [%s];", paste0(rows-1, collapse = ",")),
    sprintf("  var cols = [%s];", paste0(cols, collapse = ",")),
    "  for(var i = 0; i < rows.length; ++i){",
    "    if(index == rows[i]){",
    "      $('td:eq(' + cols[i] + ')', row)",
    "        .css({'background-color': 'orange'});",
    "    }",
    "  }",
    "}"
  )
}
datatable(iris,
          options = list(
            dom = "t",
            rowCallback = JS(changeCellsColor(c(1,3), c(2,1)))
          )
)
库(DT)

是的,这正是我想要的。!非常感谢!!