为什么 JQuery 不影响 RMarkdown 中的表?

问题描述 投票:0回答:1

我正在尝试在 RMarkdown 中的 HTML 表格上使用 JQuery。 具体来说,我正在尝试使用 JQuery 将行类添加到 DT::datatable 的某些行。

我已经在 jsFiddle 中测试了 jQuery 代码,效果很好。我还在 RMarkdown 中测试了基本的 jQuery 代码(更改标题的颜色)。这也有效。我还没有设法获得与 RMarkdown 中的 DT::datatable 上的表相关的 jQuery。

下面的代码来自 .Rmd 文件。

```
# Test
```

```
{js jQuery codechunk}
// Test that jQuery works in Rmd
$('.h1').css('color', 'red')

// Updating classes does not work
$("tr:contains('Mazda')").addClass('Mazda');

// Colour styling also does not work
$("tr:contains('Mazda')").css("color", "red")
```

```
{r R codechunk}
library(DT)
  DT::datatable(mtcars)
```

我希望当我检查表格时,带有“Mazda”的行将被涂成红色,并且将具有“Mazda”类。

我只看到普通的DataTable,行类是标准的。

jquery r r-markdown dt
1个回答
3
投票

我明白了!请参阅文档第 2.9 节,“

callback
论证。”

我做了以下更改,你的代码运行得非常好。

  • 将你想要做的所有事情包装在一个函数中。
  • callback
    DT::datatable()
    参数调用该函数。
  • (我也将
    .h1
    更改为
    h1
    以使示例的这一部分起作用。)

顺便说一句,包装很漂亮。谢谢你向我介绍它!

---
title: "It works!"
author: "trianglegirl"
date: "May 20, 2019"
output: html_document
---

```{js jQuery-codechunk}
const trianglegirl_function = function() {

  // Test that jQuery works in Rmd
  $('h1').css('color', 'red');

  // Updating classes does not work
  $("tr:contains('Mazda')").addClass('Mazda');

  // Colour styling also does not work
  $("tr:contains('Mazda')").css("color", "red");
};
```

```{r R-codechunk}
library(DT)
DT::datatable(mtcars, callback = JS('trianglegirl_function();'))
```
© www.soinside.com 2019 - 2024. All rights reserved.