5

WebアプリケーションでjQuery用のDataTablesプラグインを使用しています。すべてが正しく機能しています。しかし、オプションの1つは、詳細ボタンを押して情報ウィンドウを開き、追加の値を持つことです。その部分は正しく動作していますが、テーブルがクラスで定義されているので、ユーザーがメニューを使用して言語を変更したときに言語を動的に変更できます。テーブルが既に描画されている場合の値の変更方法

私が最初に宣言したように私が得ているのは英語でしかありません。

マイ事前定義された表:

function fnFormatDetails (nTr) 
{ 
    var aData = oTable.fnGetData(nTr); 
    var sOut = '<table cellpadding="5" cellspacing="0" border="0" style="background-color:whitesmoke; padding-left:10%; padding-right:10%; width:100%">'; 
    sOut += '<tr><td style="text-align:left"><span class="id_prog">ID Program : '+aData[0]+'</span></td><td style="text-align:left"><span class="id_in_perc">Increment : '+aData[3]+'</span></td></tr>'; 
    sOut += '<tr><td style="text-align:left"><span class="id_var">Machine position : '+aData[1]+'</span></td><td style="text-align:left"><span class="id_tot_in_var">Total inc : '+aData[4]+'</span></td></tr>'; 
    sOut += '<tr><td style="text-align:left"><span class="id_dti_var">DTI : '+aData[2]+'</span></td></tr>'; 
    sOut += '</table>'; 

    return sOut; 
} 

私は言語と私のjavascriptのクラス名を介して値を変更して変更すると、何も起こりませんが、私のコードの残りの部分のために、これは正常に動作しますが、この事前定義された表についてしません。何か案が?

$('#jphit tbody td img').live('click', function() { 
     var nTr = $(this).parents('tr')[0]; 
     if (oTable.fnIsOpen(nTr)) 
     { 
      /* This row is already open - close it */ 
      this.src = "images/plus-icon.png"; 
      oTable.fnClose(nTr); 
     } 
     else 
     { 
      /* Open this row */ 
      this.src = "images/minus-icon.png"; 
      oTable.fnOpen(nTr, fnFormatDetails(nTr), 'details'); 
     } 
}); 

は、ボタンがクリックされたときに、私は fnFormatDetails()関数を呼び出しますが、そのそれが設定されているだけのように描か:

EDITは

これは、イベントリスナーです。だから私は動的にそのテーブルの値を変更する何も変更されます。

さらに詳しい情報が必要ですか?

+2

*実際に何をしようとしているかを示すために何も表示されていないため、*テーブル機能の使用方法を*表示するために質問を編集してください。 –

+2

詳細テーブルを表示する方法:ダイアログで、オーバーレイ... DOMに追加されていない要素のクラスを変更しようとしているため、これは機能しません。 – jmventar

+1

私は答えを編集しました –

答えて

4

私が正しく理解している場合、常にページ上にあるテーブルの内容を動的に変更しようとします。 なぜあなたはあなたのjavascriptに入れているのか分かりませんが、jQueryを使用しているときは別のアプローチを提案しています。

これはあなたのhtmlファイルにあります。

<table id="myTable"> 
    <tr> 
     <td><span id="id1"><!-- content will load here --></span></td> 
     <td><span id="id2"><!-- content will load here --></span></td> 
    </tr> 
</table> 

これらの値は一意であるため、クラスではなくidを使用します。

そして、htmlタグの内容を置き換えるjavascript。

function fnFormatDetails (nTr) { 
    var aData = oTable.fnGetData(nTr); 
    $("#id1").html("My data here " + aData[0]); 
    $("#id2").html("My data here " + aData[1]); 
    ... 
} 

これは、指定したidのタグのhtmlコンテンツを、属性として指定したコンテンツに置き換えます。

私はあなたを助けてくれることを願っています。

+0

あなたのコードを試してみましょう。 –

1

1)fnFormatDetailsのaDataをconsole.logで調べることをお勧めします。これにより、関数が実行され、配列内に正しい値が表示されます。

2)古いテーブルをnTr.html( "")で消去して、それが改善するかどうか確認してください。

わかりやすい表の画像を貼り付けることができますか?

関連する問題