增加一个值,如果...... Javascript

时间:2014-07-09 15:02:21

标签: javascript html

我正在研究一小段代码,看看一个值是否等于'12月25日 - 1月9日',如果它确实增加了一年(我追加它)一个

然而,我无法弄清楚如何找到这个价值。每次运行脚本时,如果选择该值,它将跳转到脚本的else部分。 任何指导表示赞赏

if ($('#date').val === 'December 25 - January 9') {
                    var startDates = $('#date').val().split(" - ");
                    var year = $('year').val;
                    var yearDec = parseInt(year, 10) + 1;
                    var payPdStart = startDates[0] + ' ' + year;
                    var payPdEnd = startDates[1] + ' ' + yearDec;
                    var startDate = Date.parse(payPdStart);
                    myStartDates = new Date(startDate);
                    var endDate = Date.parse(payPdEnd);
                    myEndDates = new Date(endDate)
                    while (myStartDates <= myEndDates) {
                        var firstCol = "<td style='border:none;'>" + myStartDates + "</td>";
                        $('#timeTable').append("<tr>" + firstCol + "</td>");

                        var newDate = myStartDates.setDate(myStartDates.getDate() + 1);
                        start = new Date(newDate);
                    }
                }
                else{
                    var startDates = $('#date').val().split(" - ");
                    var year = $('#year').val() ;
                    var payPdStart = startDates[0] + ' ' + year;
                    var payPdEnd = startDates[1] + ' ' + year;
                    var startDate = Date.parse(payPdStart);
                    myStartDates = new Date(startDate);
                    var endDate = Date.parse(payPdEnd);
                    myEndDates = new Date(endDate)

                    console.log(myStartDates);
                    console.log(myEndDates);
                    while (myStartDates <= myEndDates) {
                        var firstCol = "<td style='border:none;'>" + myStartDates + "</td>";
                        $('#timeTable').append("<tr>" + firstCol + "</td>");

                        var newDate = myStartDates.setDate(myStartDates.getDate() + 1);
                        start = new Date(newDate);
                    }

3 个答案:

答案 0 :(得分:3)

问题是你正在使用JQuery但是在javascript中检查值

$('#date')[0].value === 'December 25 - January 9'

$('#date').val() === 'December 25 - January 9'

应该这样做。

答案 1 :(得分:1)

我看到您使用val而不是val()的两个地方,您想要调用函数val无法访问不存在的val字段

if ($('#date').val() === 'December 25 - January 9') { // <-- val()
  var startDates = $('#date').val().split(" - ");
  var year = $('year').val(); // <-- val()

答案 2 :(得分:0)

试试这个。它应该工作。

你有var应该是var()也应该是#year

if ($('#date').val() === 'December 25 - January 9') {
                    var startDates = $('#date').val().split(" - ");
                    var year = $('#year').val();
                    var yearDec = parseInt(year, 10) + 1;
                    var payPdStart = startDates[0] + ' ' + year;
                    var payPdEnd = startDates[1] + ' ' + yearDec;
                    var startDate = Date.parse(payPdStart);
                    console.log(startDates);
                    console.log(year);
                    console.log(yearDec);
                    console.log(payPdStart);
                    console.log(payPdEnd);
                    myStartDates = new Date(startDate);
                    var endDate = Date.parse(payPdEnd);
                    myEndDates = new Date(endDate)
                    while (myStartDates <= myEndDates) {
                        var firstCol = "<td style='border:none;'>" + myStartDates + "</td>";
                        $('#timeTable').append("<tr>" + firstCol + "</td>");

                        var newDate = myStartDates.setDate(myStartDates.getDate() + 1);
                        start = new Date(newDate);
                    }
                }
                else{
                    var startDates = $('#date').val().split(" - ");
                    var year = $('#year').val() ;
                    var payPdStart = startDates[0] + ' ' + year;
                    var payPdEnd = startDates[1] + ' ' + year;
                    var startDate = Date.parse(payPdStart);
                    myStartDates = new Date(startDate);
                    var endDate = Date.parse(payPdEnd);
                    myEndDates = new Date(endDate)

                    console.log(myStartDates);
                    console.log(myEndDates);
                    while (myStartDates <= myEndDates) {
                        var firstCol = "<td style='border:none;'>" + myStartDates + "    </td>";
                        $('#timeTable').append("<tr>" + firstCol + "</td>");

                        var newDate = myStartDates.setDate(myStartDates.getDate() + 1);
                        start = new Date(newDate);
                    }