如果已经绘制了表,如何更改值

use*_*456 5 javascript function predefined-variables jquery-datatables

我在我的网络应用程序上使用DataTables插件为jQuery绘制表格.一切都正常.但其中一个选项是按详细信息按钮打开一个信息窗口,该窗口将包含其他值.现在该部分工作正常,但我的表是用类定义的,所以当用户使用菜单更改语言时,我可以动态地更改语言.

我得到的唯一的东西是英语,正如我在开始时所说的那样.

我预定义的表格:

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;
}
Run Code Online (Sandbox Code Playgroud)

当我更改语言并且我的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' );
        }
} );
Run Code Online (Sandbox Code Playgroud)

因此,当单击按钮时,我调用fnFormatDetails()函数,然后仅在设置时绘制它.因此,当我动态更改该表的值时,没有任何变化.

你需要更多细节吗?

fon*_*onZ 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>
Run Code Online (Sandbox Code Playgroud)

我会使用 id 而不是 class,因为这些值是唯一的。

并且用javascript来替换html标签的内容。

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

这会将指定 id 的标签的 html 内容替换为您指定为属性的内容。

我希望这对你有帮助。