如果表格已经绘制,如何更改值
How to change value if table is already drawn
我正在使用 jQuery 的数据表插件在我的 Web 应用程序上绘制表格。 一切正常。但其中一个选项是按详细信息按钮打开一个信息窗口,该窗口将具有其他值。现在该部分工作正常,但我的表是用类定义的,因此当用户使用菜单更改语言时,我可以动态更改语言。
我唯一得到的是英语,正如我在开始时宣布的那样。
我的预定义表:
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()
我调用该函数,但随后仅在设置时绘制该函数。因此,当我动态更改该表的值时,没有任何变化。
您需要更多细节吗?
如果我理解正确,您尝试动态更改页面上始终存在的表格的内容。我不知道你为什么要把它放在你的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 而不是类,因为这些值是唯一的。
和 javascript 替换 html 标签的内容。
function fnFormatDetails ( nTr ) {
var aData = oTable.fnGetData( nTr );
$("#id1").html("My data here " + aData[0]);
$("#id2").html("My data here " + aData[1]);
...
}
这会将标记的 html 内容替换为指定 id 和您指定为属性的内容。
我希望这对你有所帮助。
1)我建议您通过console.log查看fnFormatDetails中的aData。这将确保函数得到执行,并且您在数组中看到正确的值。
2) 尝试通过 nTr.html(") 清除旧表,看看是否有任何改进。
您能否粘贴表格的图像以便我们更好地理解。
相关文章:
- 我可以将javascript绘制函数更改为图像吗
- 如果表格已经绘制,如何更改值
- QML:如何等到由于特性更改而重新绘制零部件
- AngularJS nvd3折线图指令未在数据更改时重新绘制(非实时)
- 为什么onChange回调中对$scope.data的更改不会重新绘制chart.js
- 如何在绘制谷歌地图后将其更改为卫星视图
- 如何在从javascript(Internet Explorer和Edge)更改后重新绘制SVG
- 在绘制矩形之前更改 lineCap 和 lineJoin 不会执行任何操作
- JSXGRAPH:绘制后如何更改线条属性
- 更改 svg 填充颜色,然后绘制到画布
- 如何更改拉斐尔 JS 绘制的路径宽度和高度
- 画布绘制 - 在不清除旧状态的情况下更改旋转轴
- 每次更改数据集时,高图表是否都会重新绘制
- img通过更改它的src,并由动态提供的源代码(MySQL和PHP)使用Javascript绘制
- 如何处理在HTML5画布上绘制的形状并更改其属性
- 谷歌图表转换动画:如何在重新绘制图表时更改轴标签
- 更改要在画布上绘制的变量
- Highcharts-重新绘制时停止Y轴值的更改
- 更改XYZ图层的源url并重新绘制图层/贴图
- HTML5画布在参数更改时重新绘制