基于借记金额,我希望制作红色,而对于Credit,我想使用jquery mobile制作黑色

时间:2015-03-16 07:32:14

标签: jquery

基于借记金额,我想制作红色和信用我想用黑色使用jquery mobile ..这是我的代码,我只得到两个数量的红色..请看我的代码,并建议我

$(document).ready(function() {
    //alert("working")
    //"Status=0&RefNo=000000000016&Amt=+22,434.64&ClearAmt=+22,434.64&Stmt=30-08-2011;TRF thru I;D;2787.00;INR;@29-08-2011;Sweep Trf ;C;25000.00;INR;@29-08-2011;MICR INWAR;D;250.00;INR;@29-08-2011;MICR INWAR;D;14250.00;INR;@29-08-2011;MICR INWAR;D;10250.00;INR;@29-08-2011;MICR INWAR;D;1000.00;INR;@27-08-2011;Sweep Trf ;C;1000.00;INR;@27-08-2011;TRF to NEF;D;1900.00;INR;@26-08-2011;0102820001;D;40000.00;INR;@26-08-2011;TRF to NEF;D;9999.00;INR;@&AccNo=SBA-01010600006521";
    //alert(_MiniStatement);
    var MiniStatementDATA = _MiniStatement.split("&")[4];
    var MiniStatementArray = MiniStatementDATA.split("@");
    Date1 = new Array();
    Amount = new Array();
    Details = new Array();
    //Currency = new Array();

    for (var i = 0; i < MiniStatementArray.length - 1; i++) {

        MiniStatementArray_temp = MiniStatementArray[i].split(";");
        alert(MiniStatementArray_temp);
        //MiniStatementArray_temp1 = MiniStatementArray_temp.split("")
        result = buildJson1(MiniStatementArray_temp);
        Date1[i] = result.date1;
        Amount[i] = result.Amount;
        alert(Amount);
        Details[i] = result.Details;
    }

    for (var i = 0; i < MiniStatementArray.length - 1; i++) {

        $("#MiniSummaryId").append("<tr><td align='center'>" + Date1[i].replace("Stmt=", "") + "</td><td align='right' style=''> if (debit == D)  $("Amount_class").css("color", "FF0000")" +  Amount[i] + "</td><td align='left' style= " padding" >" + Details[i] + "</td>");
    }

});

2 个答案:

答案 0 :(得分:1)

好的,这里有很多东西:

  • 你应该尽快抽出结构文本。您已将Stmt=文本作为第一个日期值的一部分,直到从所有日期值中删除它的最后一刻,即使没有它的那些日期值也是如此。 Stmt=文本甚至不与任何日期值相关联,它只是与键值对关联的结构文本,其中包含编码数据字符串中最浅嵌套级别的语句数据,并且您的代码类型意外地打开目的是通过它在数据中的位置将其拉入第一个日期值。您应该在提取语句数据字符串后立即将其删除。
  • 您应该在HTML中使用双引号,在JavaScript中使用单引号。这是一种更常见的编码风格,有助于消除大量的反斜杠转义,顺便说一下,你甚至没有在需要它的地方完成。
  • 请不要在一行上构建frickin巨大的连接字符串;以空字符串开头,以逻辑方式一次构建一个片段。这使代码更易读。
  • 尝试尽可能预先计算派生值;这也增强了可读性。看看我在最后一个循环中对cssColor做了什么。
  • 如果您可以控制日期格式,请使用%Y-%m-%d从不使用任何其他格式。见http://xkcd.com/1179/

这是固定代码:

var input = 'Status=0&RefNo=000000000016&Amt=+22,434.64&ClearAmt=+22,434.64&Stmt=30-08-2011;TRF thru I;D;2787.00;INR;@29-08-2011;Sweep Trf ;C;25000.00;INR;@29-08-2011;MICR INWAR;D;250.00;INR;@29-08-2011;MICR INWAR;D;14250.00;INR;@29-08-2011;MICR INWAR;D;10250.00;INR;@29-08-2011;MICR INWAR;D;1000.00;INR;@27-08-2011;Sweep Trf ;C;1000.00;INR;@27-08-2011;TRF to NEF;D;1900.00;INR;@26-08-2011;0102820001;D;40000.00;INR;@26-08-2011;TRF to NEF;D;9999.00;INR;@&AccNo=SBA-01010600006521';
var stmtData = input.split('&')[4].replace(/^Stmt=/,'');
var arrayData = stmtData.split('@');
var num = arrayData.length-1; // exclude final element, which is empty

var dates = [];
var details = [];
var creditDebits = [];
var amounts = [];
var currencies = [];
for (var i = 0; i < num; ++i) {
    var fieldData = arrayData[i].split(';');
    dates.push(fieldData[0]);
    details.push(fieldData[1]);
    creditDebits.push(fieldData[2]);
    amounts.push(fieldData[3]);
    currencies.push(fieldData[4]);
} // end for

for (var i = 0; i < num; ++i) {
    var cssColor = creditDebits[i] === 'C' ? 'black' : 'red';
    var html = '';
    html += '<tr>';
    html += '<td align="center">'+dates[i]+'</td>';
    html += '<td align="right" style="color:'+cssColor+';">'+amounts[i]+'</td>';
    html += '<td align="left">'+details[i]+'</td>';
    html += '</tr>';
    $("#MiniSummaryId").append(html);
} // end for
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="MiniSummaryId" border="1">
</table>

答案 1 :(得分:0)

你在jquery中有错误的格式化!

        $("#MiniSummaryId").append("<tr><td align='center'>" + Date1[i].replace("Stmt=", "") + "</td><td align='right' style=''> if (debit == 'D')  $("Amount_class").css("color", "FF0000")" +  Amount[i] + "</td><td align='left' style= " padding" >" + Details[i] + "</td>");