私はJavaScriptの再帰関数を書いていますが、常に0の値を与えました。以下は、私のコード スニペットとマークアップを示すスクリーンショットです。
getOdometerEnd: function(object){
var previous = jQuery(object).closest('tr').prevAll();
var odometerEnd = parseInt(previous.find('input[name=odometer_end\\[\\]]').val());
console.log(previous.find('input[name=destination\\[\\]]').val());
if(odometerEnd == 0){
this.getOdometerEnd(previous);
}
return odometerEnd;
},
updateOdometer: function(){
var self = this;
var distance = 0;
var odometerStart = 0;
var odometerEnd = 0;
jQuery('.app-table tr').each(function(index, object){
distance = jQuery(object).find('input[name=distance\\[\\]]').val();
if(typeof distance != 'undefined' && distance > 0){
if(index == 1){
odometerStart = jQuery(object).find('input[name=vehicle_odometer\\[\\]]').val();
}else {
odometerStart = self.getOdometerEnd(object);
}
odometerEnd = parseInt(odometerStart)+parseInt(self.userDistance(distance));
jQuery(object).find('input[name=odometer_start\\[\\]]').val(odometerStart);
jQuery(object).find('input[name=odometer_end\\[\\]]').val(odometerEnd);
}
});
},
どこを間違えたのかわかりませんが、最後から2番目の再帰で正しい値が得られますが、最後に再び0が返されます。助けてください。ここにマークアップを示す画像を添付しました。
PS スタック オーバーフローにより、画像を投稿できませんでした。または、ここで画像を表示することもできます: http://www.yourcarlog.com/odometer-problem.jpg
事前にサンクス。