0

テーブルから 2 つの値を取得しています。それらを比較したいと思います。一方が他方よりも大きい場合、エラーを警告します。問題は、間違った結果が得られることです...たとえば、1000.00 と 1000000.00 があり、1000.00 > 1000000.00 を実行すると、TRUE! が返されるため、エラーになります。

誰かがここで私を助けてくれることを願っています! どうも

row = document.getElementById(tabla).rows;
cell = document.getElementById(tabla).rows[0].cells;

for (i=2;i<row.length-1;i++){
    var TotalDist = parseFloat(document.getElementById(tabla).rows[i].cells[cell.length].firstChild.nodeValue).toFixed(2);
    var Total = document.getElementById(tabla).rows[i].cells[cell.length+1].firstChild.nodeValue;

    if(TotalDist>Total)
       alert("Error");
}

値の 1 つは既に db から取得したフロートであり、もう 1 つの値 (TotalDist) はユーザーによって設定されているため、適切に比較できるようにフロートに変換します...しかし、機能していないようです

4

1 に答える 1

3

両方の値を数値に変換する必要があります (つまりparseFloat、両方の文字列で使用します) ->

row = document.getElementById(tabla).rows;
cell = document.getElementById(tabla).rows[0].cells;

for (i=2;i<row.length-1;i++){
    var TotalDist = parseFloat(document.getElementById(tabla).rows[i].cells[cell.length].firstChild.nodeValue).toFixed(2);
    var Total = parseFloat(document.getElementById(tabla).rows[i].cells[cell.length+1].firstChild.nodeValue);

    if(TotalDist>Total)
       alert("Error");

}

aを使用nodeValueする場合stringは返されます ...ドキュメントを参照してください

var value = node.nodeValue;

value は、現在のノードの値を含む文字列です

于 2012-07-02T08:55:57.600 に答える