0

これは簡単なはずですが、私はそれを正しく理解できないようです。

var totalHours = 0;
this.$(".timesheet-daily-input").each( function () {
    var inputValue = $(this).text();
    var hours = parseInt(inputValue);
    totalHours += (hours == null) ? 0 : hours;
});

私も試しまし$(this).val()$(this).html()が、入力フィールドから値を取得できません。

編集:お詫び、私は何かに言及するのを忘れていたことを知っていました。「これ」。各ループの開始時に、バックボーンのモデルとコレクションを使用しているためです。最初の「これ」。問題の特定のモデルを指します。適切な回数ループしますが、値を取得できません。

4

4 に答える 4

2

this.以前を取り除き、入力の値を取得するために$(".timesheet-daily-input")使用します。$(this).val()

于 2012-10-17T18:50:27.790 に答える
1
var inputValue = $(this).val();
于 2012-10-17T18:52:13.707 に答える
0

これ以上のコードがないとわかりにくいですが、変更してください

var inputValue = $(this).text();
var hours = parseInt(inputValue);
totalHours += (hours == null) ? 0 : hours;

var inputValue = $(this).val(); // use val
var hours = parseInt(inputValue, 10); // use 10 as radix
totalHours += isNaN(hours) ? 0 : hours; // compare to NaN instead of null

parseInt("09")であり、parseIntの結果を。にすることは0できないことに注意してくださいnull

于 2012-10-17T18:56:18.917 に答える
0

正確な解決策は見つかりませんでしたが、親divを選択し、その子要素をループすることでアプローチを変更しました。

var totalHours = 0;
this.$("#timesheet-daily-entry-fields-container").children().each(function () {
    var inputValue = $(this).val();
    var hours = parseInt(inputValue);
    totalHours += isNaN(hours) ? 0 : hours;
});
于 2012-10-17T19:44:51.940 に答える