2012-08-06 97 views
2

我有this fiddle这是基于this question的结果。我试图进一步扩大这个范围,这样我就可以增加一个二级分类,这样如果总价格相同,那么它会查看佣金栏,谁的佣金最高的将在总销售价格相等的情况下排在最前面。这可能吗?我也遇到将commision列设置为小数点后两位的问题。我曾尝试过添加第二排序阵列输出

var commish = '.text((val.price/3) + (val.sales*5))'; 

和结果部分。

$("<td></td>");commish.toFixed(2).appendTo($tr); 

但这没有奏效。

回答

9

计算佣金和存储中的对象,这样就可以在分类和显示器使用两种:

d.commission = d.price/3 + d.sales * 5; 

要排序的佣金二级,检查的价格是相等的,如果它是返回的佣金比较:

data.sort(function(a,b) { 
    return a.price == b.price ? b.commission - a.commission : b.price - a.price; 
}); 

当你在对象的委托,很容易将其格式化为显示:

$("<td></td>").text(val.commission.toFixed(2)).appendTo($tr); 

演示:http://jsfiddle.net/Guffa/VNSam/9/

+1

感谢伟大的答案和很好的解释。 – ak85 2012-08-06 09:11:18

+0

我无法进一步扩展这一点。我试图在这个工作示例中使用相同的原则。 http://jsfiddle.net/aaronk85/SDCkW/4/,以便当您从下拉列表中选择某些内容时,它会填充数组中的所有相关字段,请参阅http://jsfiddle.net/aaronk85/VNSam/13/,但出于某种原因(我似乎没有得到任何错误),这是行不通的。我是否在错误的地方执行代码? – ak85 2012-08-06 10:55:54

+0

@ ak85:您已将'select'放在'form'之外,所以选择器'form select'不适用于它。 – Guffa 2012-08-06 16:25:35