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"));
        }
    }]
});
Другие вопросы по тегам