1

このようなテーブル構造があります。

"<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>"

<td>別のテーブル内にネストされているため、タグが表示されます。親テーブルには 5 つの列がありますが、おそらく数百行あります。子テーブルには 1 列しかなく、3 行しかありません。

<td>行の見積もりを編集できる機能があります。

$(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 は、データをテーブルにポストするループ値の位置です。

どんな助けでも大歓迎です!!

クリス

4

1 に答える 1

0

わかりました。少しの構造変更でそれが得られました...ループ値の代わりに、出現ごとに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);
于 2012-11-26T11:15:54.160 に答える