Добавление класса по id в строку datatables

я хочу добавить класс в определенную строку (по идентификатору строки).

Я пытаюсь сделать это таким образом, но это не удалось.

var table = $('#mytableID').DataTable();            
var myrow = $(table.row('#my_row_id').node());
table.row(myrow).addClass('mynewclass');

Что я делаю неправильно?

Обратите внимание, что в таблицах данных есть страницы с разбиением на страницы, а мои данные контента поступают из вызова ajax.

просто сделайте $('#mytableID').find('tr').addClass('mynewclass');, это добавит класс ко всем строкам, если вы хотите добавить класс к определенной строке, используйте $(this)

Devsi Odedra 16.12.2020 12:25

@DevsiOdedra, я думаю, это не будет работать с таблицами данных со страницами разбиения на страницы !?

relo80 16.12.2020 12:27

он будет работать только с перечисленными строками, а не после загрузки данных динамической страницы.

Devsi Odedra 16.12.2020 12:28

данные будут загружаться вызовом ajax, поэтому я думаю, что мне нужно пройти через «API»?

relo80 16.12.2020 12:29

да, вы можете добавить из бэкэнда.

Devsi Odedra 16.12.2020 12:30

Итак, вот моя проблема, как я могу это сделать?

relo80 16.12.2020 12:31

это зависит от вашего кода, после вызова ajax, если вы используете цикл, вы также можете сделать это с внешнего интерфейса

Devsi Odedra 16.12.2020 12:32

Нет, я думаю, у нас недопонимание. Список данных не будет обновляться снова после первого вызова ajax.

relo80 16.12.2020 12:33

jst покажи свой код js и html

Devsi Odedra 16.12.2020 12:33

его сложно отделить. Мне нужно только знать, как я могу найти узел из «my_row_id» и как я могу добавить к нему класс.

relo80 16.12.2020 12:35

Проверьте метод rowCalback, если он соответствует вашим требованиям.

user45 16.12.2020 12:38

почему бы не просто $('#my_row_id').addClass('mynewclass')?

Pete 16.12.2020 13:01

@ Пит, я думаю, что это работает только для самой страницы разбивки на страницы, а не для всех остальных страниц !? Или я ошибаюсь?

relo80 16.12.2020 14:14

если его нет с самого начала, вам также придется вызывать его при изменении страницы datatables.net/reference/event/page

Pete 16.12.2020 14:32

@Pete Пит, я проверил это с вашим предложением, и только если строка находится на странице разбивки на страницы в реальном представлении, она работает. Если строка на другой странице, она не будет работать.

relo80 16.12.2020 14:44

путь из моего поста совершенно неверен, какой самый простой способ получить индекс строки по идентификатору и добавить для этого новый класс? Я думаю, что обычно это легко, но для меня это не так ....

relo80 16.12.2020 14:47
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
16
2 026
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы близки к своему примеру кода, но вот обновленная версия:

var table = $('#mytableID').DataTable();
table.row('#my_row_id').nodes().to$().addClass('mynewclass');

Это немного сложно, потому что, хотя вы можете использовать row() для выбора одной строки (конечно, идентификатор должен быть уникальным), вам нужно использовать nodes() (форма множественного числа, а не node()) для выбора узла.

См. также to$() для справки.

Это работает для всей таблицы, независимо от нумерации страниц.

Например, если у меня есть следующая строка данных таблицы HTML:

<tr id = "my_row_id">
    <td>Herrod Chandler</td>
    <td>Sales Assistant</td>
    <td>San Francisco</td>
    <td>59</td>
    <td>2012/08/06</td>
    <td>$137,500</td>
</tr>

Затем мой код вставит требуемый класс, даже если строка изначально находится на странице 3 результатов.

Привет @andrewjames, большое спасибо, теперь это работает! Не могли бы вы предложить мне, как я могу перейти непосредственно на страницу разбивки на страницы строки, которая получила новый класс, пожалуйста?

relo80 16.12.2020 18:28

Рад, что это помогло! Взгляните на примечания в этом ответе. Помогают ли они с вашим дополнительным вопросом?

andrewJames 16.12.2020 18:41

Другие вопросы по теме