0

こんにちは、初期化後にデータテーブルをレンダリングし、リンク用の新しい行を追加しようとしています

これは私のコードの一部であり、「後に挿入」が機能していないようです。

   $('#table thead tr').each(function() {
    nCloneTh.insertAfter(this.childNodes[5]);
});

誰でも私を助けることができますか?5 列目の後に nCloneTh(th element) を挿入したいと思います。

助けてthx

私のコード全体は次のようになります

$(document).ready(function() {

var nCloneTh = document.createElement('th');
var nCloneTd = document.createElement('td');

nCloneTh.innerHTML = '<img src="style/img/icon_trash.png" id="imglink" title="Entfernen" class="center">';

$('#table thead tr').each(function() {
    nCloneTh.insertAfter(this.childNodes[5]);
});

$('#table tbody tr').each(function() {
    nCloneTd.insertAfter(this.childNodes[5]);
});

$('#table tfoot th').each(function() {
    nCloneTh.insertAfter(this.childNodes[5]);
});

dataTable = $('#table').dataTable({
    'bProcessing':true,
    'bServerSide':true,
    'sAjaxSource':'feedback.php',
    "oLanguage": {
        "sUrl": "language/dataTables.german.txt"
    },'aoColumnDefs':[{'bSearchable': false, 'bVisible':false, 'aTargets':[0]},
        {'bSortable': false, 'aTargets':[5]},
        { 'fnRender': function(o,val){return '<a>tss</a>';}, 'aTargets': [ 6]}
    ]
});

dataTable.fnClearTable( 0 );
dataTable.fnDraw(false);

});

4

3 に答える 3

2

配列のインデックスは 0 であるため、サンプルの6 番目 の後に挿入しようとしてい<th>ます。nCloneThまた、これは jQuery 要素ではなく DOM 要素であることに気付きました。次のことを試してください。

$('#table thead tr').each(function() {  
    $(nCloneTh).insertAfter($(this).children('th')[4]);
});
于 2012-12-07T21:29:10.330 に答える
1

データテーブルの初期化でaoColumnsを使用して、列を追加できます。null既存の列ごとにを使用してから、mRender関数を使用して追加の列を定義します。

dataTable = $('#table').dataTable({
    'bProcessing':true,
    'bServerSide':true,
    'sAjaxSource':'feedback.php',
    "oLanguage": {
        "sUrl": "language/dataTables.german.txt"
    },
    'aoColumnDefs':[
        {'bSearchable': false, 'bVisible':false, 'aTargets':[0]},
        {'bSortable': false, 'aTargets':[5]},
        { 'fnRender': function(o,val){return '<a>tss</a>';}, 'aTargets': [ 6]}
    ],
    aoColumns: [ null,
                 null,
                 null,
      { "sName": "ID",
        "bSearchable": false,
        "bSortable": false,
        "fnRender": function (oObj) {
           return "<img src='style/img/icon_trash.png' id='imglink' title='Entfernen'" +
                  " class='center'>";
        }
      }
    ]
});

http://www.datatables.net/usage/columns

于 2012-12-07T21:46:12.437 に答える
1

次のように、inserAfter を使用するには、nCloneTh を jQuery オブジェクトでラップする必要があります。

var nCloneTh = $('<th></th>');

これはあなたが達成しようとしているものの例です - http://jsfiddle.net/jmsessink/d3bLp/

于 2012-12-07T21:39:57.883 に答える