[UWAGA: Poniższe odpowiedź jest dla DataTables 1.9x i poniżej. 1.10 zmienił konwencje nazewnictwa metod i kilka innych rzeczy. 1.9x metody są dostępne, ale przestarzałe i nieuchronnie zostaną całkowicie usunięte.]
Jeśli można bezpiecznie usunąć je "hurtowo" (tj. Jeśli opracujesz funkcję ciągu znaków, która nie ma wpływu na ważność JSON), można to zrobić za pomocą funkcji fnServerData:
"fnServerData": function (sSource, aoData, fnCallback) {
$.ajax({
"dataType": 'json',
"type": "GET",
"url": sSource,
"data": aoData,
"success": function (data) {
// run your escape string function to modify 'data'
fnCallback(data); // or fnCallback(newData) if you used new variable
}
});
}
Jeśli nie jesteśmy pewni o bezpieczeństwo modyfikując to hurtownia, można to zrobić na zasadzie rząd po rzędzie z fnRowCallback:
"fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
var cellData = myEscaper(aData[0]); // where myEscaper() is your own custom function
$('td:eq(0)').text(cellData);
return nRow;
}
W tej próbce modyfikuję tylko pierwszą komórkę. Jeśli ma zastosowanie do wszystkich komórek, prawdopodobnie będziesz chciał napisać iterator, który przejdzie przez cały wiersz, aby dokonać konwersji. Jeśli dotyczy tylko niektórych komórek, możesz obsługiwać je pojedynczo.
Należy pamiętać, że aData [0] i td: eq (0) tylko przypadkowo mają ten sam indeks (0). Jeśli masz jakieś ukryte kolumny, niekoniecznie będzie pasować. Ponadto, jeśli używasz mDataProp, będziesz musiał to również obsłużyć.
Spróbuj technika: http://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery – rcravens