Javascript 数据表可以显示原始/文字字符串而不是解释转义字符吗?

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

我构建了一个 Flask 应用程序,用于显示用户在 DataTable 中上传的 CSV 文件中的文本数据。有时,文本可能包含转义字符,甚至一些代码/标签。我希望所有文本都按照原始文件中写入的方式显示,包括任何转义字符或其他代码/标签。由于我不需要讨论的原因,涉及替换文本本身中的字符的解决方案不适用于我的用例(因此额外的反斜杠或 ascii 字符或其他字符是不可接受的)。 有没有办法实现这个目标?

下面是一些我希望可以使用

String.raw

的 JavaScript 代码,但它仍然将“This is

bold
”呈现为“This is bold”。不是我所期望的。 简化代码:

var sample = '<i>I</i> &amp; <b>B</b>'; var data_table = $("#data-table").DataTable(); function redraw(sample) { data_table.clear(); data_table.row.add([ String.raw`${sample}` ]); data_table.draw(); } i.value = sample; i.oninput();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<link href="https://nightly.datatables.net/css/dataTables.dataTables.css" rel="stylesheet" type="text/css" />
<script src="https://nightly.datatables.net/js/dataTables.js"></script>

Test:<input id="i" type="text" oninput="redraw(value)" size="50">

<div class="container">
  <table border id="data-table" width="100%">
    <thead>
      <tr>
        <th>default</th>
      </tr>
    </thead>
  </table>
</div>

javascript html datatables
1个回答
0
投票

解决方案是使用

text

渲染助手

datatables.net/manual/data/renderers#Text-helper
有了这些信息,我就能够在首次定义 DataTable 时声明如何呈现特定列,因此随后添加的任何行都将依赖于该定义来显示如何显示。

这是固定代码:

\\ define an existing HTML table as a DataTable object \\ defined as a variable here b/c passed to another \\ process not shown in this code sample var corrTable = $(`#data-table`).DataTable({ // column index 1 holds text data columnDefs: [ { targets: [1], render: DataTable.render.text() }, ], }); \\ define function that will populate existing table function prepareTable(data) { var data_table = $(`#data-table`).DataTable(); data_table.clear(); data['table'].forEach(function(item) { //insert rows data_table.row.add([ item.id, item.text, item.some_number ]) }) data_table.draw();

© www.soinside.com 2019 - 2024. All rights reserved.