DataTables: чередование вывода после построения таблицы с помощью json
Недавно я перешел от создания моих таблиц в HTML и использования DataTables для их перерисовки к заполнению данных из JSON.
Однако я изо всех сил пытаюсь выяснить, как сделать замены для данных, которые записаны в дом.
пример (не реальный пример, смеется): у меня есть строка в columnA, которая представляет собой описание, которое читается...
чтобы использовать кавычку, удерживая нажатой клавишу shift и нажмите 2, это заставит их появиться, вот так "
если я попытаюсь отправить это предложение в формате JSON, этот код станет недействительным. Я обошел это, заменив "" "на" кавычку "в том месте, где создан JSON. Это отлично работает, и JSON действителен, но это означает, что предложение теперь читается...
чтобы использовать кавычку, удерживая нажатой клавишу shift и нажмите 2, это сделает их похожими на знак
В идеале мне нужен соответствующий синтаксис для изменения того, что DataTables пишет в DOM. JSON также записывает элементы span с пользовательскими свойствами, которые также могут включать кавычки, поэтому я не могу просто изменить ячейку как таковую.
Мой текущий код для написания таблицы выглядит следующим образом:
$("#table9").DataTable({
"sScrollX": "90%",
"sScrollXInner": "100%",
"ajax": "Ajax.asp?RT=weeklyData",
"order": [[ 0, "desc" ]]
});
Я мог бы выполнить общий поиск по всему dom после рендеринга DataTable, а затем заменить оскорбительные фразы, но это кажется очень расточительным и неэффективным.
Любой вклад лучшего решения будет высоко ценится
Заранее спасибо, ребята
elboffor
1 ответ
Datatables предлагает несколько вариантов в этом случае. Проверять, выписываться:
https://datatables.net/reference/option/columns.render https://datatables.net/reference/option/columns.createdCell
Если бы я был вами, я бы, вероятно, использовал опцию createCell для манипулирования элементом td до его добавления в DOM.
$("#table9").DataTable({
"sScrollX": "90%",
"sScrollXInner": "100%",
"ajax": "Ajax.asp?RT=weeklyData",
"order": [[ 0, "desc" ]],
"columnDefs": [ {
"targets": 0,
"createdCell": function(td, cellData, rowData, row, col){
$(td).html($(td).html().replace(/quotation-mark/g,"quotation-mark-replacement"));
}
}]
});