經常在商城或汽車系統里可以看到很多商品對比或車型對比的頁面,最近做項目也遇到了這樣的需求,想到了一種實現思路,如果大家有什么更好的辦法,不惜賜教。
1.實現基礎:擴展prototype,實現通過索引來訪問Josn對象屬性字段。
2.思路分析:這里的內容對比,假定對比的字段都是固定的,也就是說參與對比的幾個對象所擁有的字段都是一樣的。
①建好對比內容框架,固定表格對比字段,比如像這樣:
這里通過col和row分別對應Josn對象里的第幾個對象的第幾個字段。
②通過ajax方式,取得將要對比的內容的Josn數據格式。
③通過對Josn對象的分析,利用Js循環為每個單元格賦值,偽代碼:
for (var r = 0; r <fieldCount ; r++) { //fieldCount 對比Josn對象的字段數
for (var c = 1; c < cmpList.Length; c++) { //cmpList對比Josn集合
elem = "#field_r" + r + "_c" + c;
$(elem).html(cmpList[c][r]); //第幾個對象的地幾個字段值
}
}
2011年9月19日17:26:58 附加:
更好的遍歷Josn的方法,利用jquery的each方法:
var arr1 = [ "one", "two", "three", "four", "five" ];
$.each(arr1, function(){
alert(this);
});
輸出:one two three four five
var arr2 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
$.each(arr2, function(i, item){
alert(item[0]);
});
輸出:1 4 7
var obj = { one:1, two:2, three:3, four:4, five:5 };
$.each(obj, function(key, val) {
alert(obj[key]);
});
輸出:1 2 3 4 5
寫了幾個例子,運行一下看看就明白啦!很簡單吧!