【问题标题】:Getting a cell value from an HTML table从 HTML 表格中获取单元格值
【发布时间】:2012-11-26 19:15:54
【问题描述】:

我有一个这样的表结构;

"<td>",
    "<table class='ead' name=\""+i+"\" id=\""+x+"\" border='0'>",
        "<tr id='e'>",
            "<td class='estimate' name=\""+i+"\" id=\""+x+"\">0</td>",
        "</tr>",
        "<tr id='a'>",
            "<td class='actual' name=\""+i+"\" id=\""+x+"\">"+keyVal[key]+"</td>",
        "</tr>",
        "<tr id='d' >",
            "<td class='difference' name=\""+i+"\" id=\""+x+"\">"+day_total+"</td>",
        "</tr>",
    "</table>",
"</td>"

您可以看到&lt;td&gt; 标签,因为它嵌套在另一个表中。在父表中有 5 列,但可能有数百行。子表中只有 1 列,并且只有 3 行。

我有一个函数可以让我编辑&lt;td&gt; 行估计值;

$(document).on("click", ".estimate", function() {
var myName = parseInt($(this).attr("NAME"));
var myId = parseInt($(this).attr("ID"));

$('.estimate').editable(function(value, settings) { 
    console.log(value);
    return(value);
 },
 {type      : 'textarea',
     //cancel    : 'Cancel',
     event     : 'dblclick',
     //submit    : 'OK',
     indicator : '<img src="images/indicator.gif">',
     tooltip   : 'Double-click this value to edit...',
     width     : '40px',
     height    : '21px',
     onblur    : 'submit'
 });
});

这工作正常,新值已发布到表中。问题是我需要用新值进行计算;所以我需要获取实际值并将差异(实际 - 新估计)发布到差异中。

我无法获得实际的唯一值。 id=x 和 name=i 是将数据发布到表中的循环值的位置。

任何帮助表示赞赏!

克里斯

【问题讨论】:

  • 请提供支持可编辑插件的js文件下载链接?否则我们帮不了你

标签: javascript jquery html-table


【解决方案1】:

没关系,稍微改变一下结构就可以了...而不是循环值,我给了它自己的唯一索引,每次出现递增 1。一旦我有了这个值,我就可以通过该值引用每个标签。

"<td class='estimate' name=\""+IdIndex+"\" id=\"estimate"+IdIndex+"\">0</td>",

然后我只是做了总和;

IDVal = $(this).attr("ID");
NameVal = parseInt($(this).attr("NAME"));
$('.estimate').editable(function(value, settings) { 
    myActual = "#actual"+NameVal;
    myDiff = "#diff"+NameVal;
    $($(myDiff)).text(value - $(myActual).text());
    return(value);

【讨论】: