今天在做廣州仲裁委員會的系統時這樣的一個需求,需要在頁面一加載的時候查詢各個項目的案件數,這里有很多個項目,一開始我是這樣寫的:
代碼如下:
$.get(assignedCaseUrl,function(data){ $("#waitingAllocationSecretary").html("等待部長分配辦案秘書("+data.total+")"); if(data.total!=0){ $("#waitingAllocationSecretary").css("background","#f99"); } }); $.get(collectedCaseUrl,function(data){ $("#waitingRegisterCase").html("我收到等待立案("+data.total+")"); if(data.total!=0){ $("#waitingRegisterCase").css("background","#f99"); } }); $.get(filedCaseUrl,function(data){ $("#waitingOrganize").html("我已立案等待組庭("+data.total+")"); if(data.total!=0){ $("#waitingOrganize").css("background","#F99"); } });
很顯然,對於很多的項目來說,這種簡單的重復顯得代碼特別臃腫,所以我和很多人一樣,打算用一個函數封裝這些功能,一開始是這樣的:
//獲取每一個項目的待處理的案件的數目,傳入那個項目的獲取數目的url,和那個項目的id function getNumber(url,id){ $.get(url,function(data){ $("#"+id).append("("+data.total+")"); if(data.total!=0){ $("#"+id).css("background","#f99"); } }); }
但是程序報錯了,我又錯誤的改成這樣:
//獲取每一個項目的待處理的案件的數目,傳入那個項目的獲取數目的url,和那個項目的id function getNumber(url,id){ $.get(url,function(data){ $("\"#"+id+"\"").append("("+data.total+")"); if(data.total!=0){ $("\"#"+id+"\"").css("background","#f99"); } }); }
顯然,這樣的方式也是不對的,那到底怎么把我的id值傳到我的jq的選擇器里面呢,下面看正確的寫法:
//獲取每一個項目的待處理的案件的數目,傳入那個項目的獲取數目的url,和那個項目的id function getNumber(url,id){ $.get(url,function(data){ $(id).append("("+data.total+")"); if(data.total!=0){ $(id).css("background","#f99"); } }); }
調用方式:
getNumber(assignedCaseUrl,waitingAllocationSecretary); getNumber(collectedCaseUrl,waitingRegisterCase); getNumber(filedCaseUrl,waitingOrganize);
其中id是我頁面的id,我在頁面調用這個函數的時候傳進來的時候這個id已經不是字符串,而是一個jq對象,所以我們在選擇器調用這個變量的時候,可以直接把id這個變量傳進去,這個錯誤我犯了兩次,所以記一下
