2016-07-29 48 views
0

我试图给一个bgcolor<td>取决于条件给予TD的bgcolor取决于条件

$.each(data, function(key, val) { 
    $('.asoy').append('<tbody><tr><td>' + (angka++) + '</td> <td>' + val.transdate + '</td>' + '<td class="satu">' + val.salespos + '</td><td class="dua">' + val.omset + '</td><td class="dynamic"></td> </tr></tbody>'); 
    if ($(".satu").text() == $(".dua").text()) { 
    $(".dynamic").css('background-color', 'red'); 
    } else { 
    $(".dynamic").css('background-color', 'green'); 
    } 
}); 

,这里是我的HTML

<table class="asoy table table-bordered table-hover"> 
    <thead> 
    <tr> 
     <td>No</td> 
     <td>Omset</td> 
     <td>Sales XML</td> 
     <td>Tanggal</td> 
     <td>Status</td> 
    </tr> 
    </thead> 
</table> 

与我上面的脚本我只得到​​我已尝试.html().val()这没有帮助。对不起,我的英语不好。

我的小提琴https://jsfiddle.net/hku73vs2/

+0

你可以显示什么样子追加后演示? – guradio

+0

@guradio这里是我的小提琴https://jsfiddle.net/hku73vs2/ – YVS1102

+0

更新的小提琴:https://jsfiddle.net/hku73vs2/1/ –

回答

2

当你添加多个行,你需要限制你的jQuery选择

$(".satu")的范围会发现所有.satu,不只是一个当前行(不包括tbody附加) - 并且$(".satu").text()将每次给出第一行的文本。

为了得到当前的HTML,扭转appendappendTo,即改变:

var html = '<tr><td>' + (angka++) + '</td> <td>' ... 
$(".asoy").append(html) 

到:

var html = '<tr><td>' + (angka++) + '</td> <td>' ... 
var row = $(html).appendTo(".asoy"); 

然后你可以使用行:

if ($(".satu", row).text() == $(".dua", row).text()) 
    $(".dynamic", row).css('background-color', 'red'); 

更新小提琴:https://jsfiddle.net/hku73vs2/1/


或者,你可以直接使用数据,而忘记了jQuery的:

var color = "green"; 
if (val.salespos == val.omset) 
    color = "red"; 

$.each(data, function(key, val) { 
    $('.asoy').append('....<td class="dynamic" style="background-color:' + color + '"></td></tr>'); 

(除了作为,你也可以使用一个类,这和addClass,而不是改变风格)

+0

最新脚本如此简单。从来不这样想。 – YVS1102

0

也试试这个:

var htmloutp = ''; 

$.each(data, function(key, val){ 
    htmloutp += '<tr><td>'+ (angka++) +'</td> <td>' + val.transdate + '</td>' + '<td class="satu">' + val.salespos + '</td><td class="dua">' + val.omset + '</td><td class="dynamic" style="background-color : ' + (val.salespos == val.omset ? 'red' : 'green') + '"></td></tr>' 
});  

$('tbody').html(htmloutp); //add tbody in html