2012-08-06 111 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