9

サーバー側の処理を使用してデータを取得するjqueryデータテーブルがページにあります。この場合、列の1つにhtmlコンテンツが含まれているため、サーバーの応答は次のようになります。

"aaData": [ [1, "aaa", "<span class="myclass">html here</span>" ], ...

で試してみました

"aoColumnDefs": [ "aTargets":[2], "sType": "html" }

しかし、それでもセルの内容は単純な文字列であるかのように見えます。私に何ができる?

4

5 に答える 5

8

で作業バージョンを作成しました

"aoColumnDefs": [ 
    { "aTargets": [2], 
      "sType": "html", 
      "fnRender": function(o, val) { 
          return $("<div/>").html(o.aData[2]).text();
      } 
    }
]

jQuery を使用して html をデコードします。

于 2012-09-07T18:29:32.873 に答える
8

新しいデータテーブル バージョン用に、SamuGG の回答を更新します。

"aoColumnDefs": [ {
                     "aTargets": [ 5 ],
                     "mRender": function ( data, type, full ) {
                      return $("<div/>").html(data).text(); 
                      }
            } ]
于 2016-12-22T08:42:25.537 に答える
1

rawColumns() または make(true) の前に以下の行を追加するだけです

->escapeColumns('aaData')

このメソッドを使用して、列名を渡します

于 2021-06-05T03:12:36.027 に答える
0

これは、データテーブル列で HTML タグをレンダリングする方法です。

ajax: "getData?userobjid=<%=session.getAttribute("userobjectid")%>&alpha=&selectsuppliersflag="+selectsuppliersflag,
columns: [
            { data:  null, render: function ( data, type, row ) {
                if(data.storeFrontUrl == 'undefined' || data.storeFrontUrl==null){
                        return "<label>"+data.companyName+"</label>";
                         }
                        else{
                        return "<a href='JavaScript:newPopup(\"directorylist/view/"+data.storeFrontUrl+"\");'>"+data.companyName+"</a>";
                     }
                    }},
于 2015-07-14T09:52:41.277 に答える
0
var renderAsHtml = function (data, type, full) {
return decHTMLifEnc(data);
}; 
var isEncHTML = function(str) {
    if(str.search(/&amp;/g) != -1 || str.search(/&lt;/g) != -1 || str.search(/&gt;/g) != -1)
        return true;
    else
        return false;
};

var decHTMLifEnc = function(str){
    if(isEncHTML(str))
        return str.replace(/&amp;/g, '&').replace(/&lt;/g, '<').replace(/&gt;/g, '>');
    return str;
}

fnRender への関数参照として renderAsHtml を渡します。これも効きます

于 2014-01-10T12:26:03.293 に答える