で動的に変更するので、私のdatatables要素のtdクラスを動的に変更しようとしています。私の研究からfnRowCallbackが見つかりましたが、それは解決策のようですが、動作させることができません。tdクラスをDatatables
"fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
for (var i in aData) {
// Check if a cell contains data in the following format:
// '[state] content'
if (aData[i].substring(0,1)=='[') {
// remove the state part from the content and use the given state as CSS class
var stateName= aData[i].substring(1,aData[i].indexOf(']'));
var content= aData[i].substring(aData[i].indexOf(']')+1);
$('td:eq('+i+')', nRow).html(content).addClass(stateName);
}
}
}
しかし、これは私のために動作しません、私はエラーを取得::スタックで、ここでの質問の1から私が見つかりました。キャッチされないでSyntaxError:予期しないトークン、そして私の要素は、「[クラス名]コンテンツ」形式を保ちます。ここに私のjavascript機能は次のとおりです。
$('#tableId').DataTable({
"ajax" : "function.php",
"columns" : [
{
"data" : "id"
}, {
"data" : "firstElement"
}, {
"data" : "secondElement"
}, {
"data" : "thirdElement"
}],
"fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
for (var i in aData) {
// Check if a cell contains data in the following format:
// '[state] content'
if (aData[i].substring(0,1)=='[') {
// remove the state part from the content and use the given state as CSS class
var stateName= aData[i].substring(1,aData[i].indexOf(']'));
var content= aData[i].substring(aData[i].indexOf(']')+1);
$('td:eq('+i+')', nRow).html(content).addClass(stateName);
}
}
},
"iDisplayLength": 5,
"scrollX": true,
"orderFixed": [[ 0, "asc"]]
});
function.phpは私にすべてのフィールドを持つJSONを与える、とのもので、私はクラスIフィールドに「[クラス名]コンテンツ」を使用に変更します。どのようにそれを動作させるための任意のアイデアですか?
おかげ
は
"予期しないトークン"によって、いくつかのタイプミスがあります。ここでJsFiddleや実行可能なコードを設定することができれば、速やかに解決するのに役立ちます。 –
このエラーは、コンソールでこの機能を実行しようとしたときにのみ表示されていました。しかし、それは動作しているコードで、私はconsole.logでテストしました。何も動かないのは$( 'td:eq(' + i + ')'、nRow).html(content).addClass(stateName)です。 –
問題の原因となるコードに印刷できない文字がある可能性があります。前後の空白行を削除して試してみてください。 –