2013-10-11 47 views
6

JSLint的驗證錯誤「與以前var語句結合這個」JSLint的驗證錯誤

如何合併這讓我不明白的JSLint驗證錯誤「與以前var語句結合本」?我在getClassName函數的代碼行中得到驗證錯誤。

$(document).ready(function() { 
'use strict'; 
// This function is used to calculate the date 
function dateString(dateToDisplay) { 

    var monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 
     'July', 'August', 'September', 'October', 'November', 'December'], 
     dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 
      'Friday', 'Saturday']; 

// Use current date if no parameter or bad date provided 
    if (dateToDisplay === undefined || !(dateToDisplay instanceof Date)) { 
     dateToDisplay = new Date(); 
    } 

    return dayNames[dateToDisplay.getDay()] + ', ' // Day of week: Sunday 
     + monthNames[dateToDisplay.getMonth()] + ' ' // Name of month: July 
     + dateToDisplay.getDate() + ', ' // Day of month: 20 
     + dateToDisplay.getFullYear(); // Year: 1969 
} 


$('#safetyRecord').hide(); // hides the header with the id of safetyRecord until we are ready to display it later in the code 
$('#today').text(dateString()); // changes the text in the span with the id of today to the current date using the dateString function 
function getClassName(days) { // this function determines which css style to apply to the id daysSinceLastAccident and the id message based on the number of days since last accident 
    if (days >= 730) { return "great"; } 
    if (days >= 180) { return "good"; } 
    if (days >= 60) { return "marginal"; } 
    if (days >= 14) { return "poor"; } 
    if (days >= 0) { return "disaster"; } 
} 

$('#checkRecord').click(function() { // when the checkRecord button is clicked the number of days since last accident is calculated, storing the number in a variable. 
    var userEnteredDate = new Date($('#dateOfLastAccident').val()); // variable that stores user entered date 
    var today = new Date(); 
    var minutes = 1000 * 60; // calculation used to convert miliseconds to minutes 
    var hours = minutes * 60; // calculation used to conver minutes into hours 
    var days = hours * 24; // calculation used to convert hours to days 
    var years = days * 365; // calculation used to convert days into years 
    var daysSinceAccident = Math.floor((today.getTime() - userEnteredDate.getTime())/days); // calculation used to find the difference between current date and user entered date as a whole number 
    var className = getClassName(daysSinceAccident); // variable clasName finds the correct css style to apply based on daysSinceAccident 
    $('#daysSinceLastAccident').text(daysSinceAccident); // replaces the content of the element with id daysSinceLastAccident with the number of days accident-free 
    $('#daysSinceLastAccident').removeClass(); 
    $('#daysSinceLastAccident').addClass(className); // applies css class style to element with id daysSinceLastAccident 

    $('#safetyRecord').show(); // Using the same timeframes, a custom message styled with the appropriate css class in the paragraph with id message is displayed. 
    $('#message').removeClass(); 
    $('#message').addClass(className); 
    $('#message').html(className + " is the current safety record."); 
}); 

});

+1

這是整個代碼?這是什麼prev var聲明。 – Sheetal

回答

23

這個錯誤意味着你必須在你的一些功能的多個var語句,如:

var x = 1; 
var y = 2; 

JSLint的希望您能在一個單一的var聲明變量聲明相結合,如:

var x = 1, 
    y = 2; 
+0

我想通了。出於某種原因,JSLint驗證錯誤顯示錯誤出現在getClassName函數中,但實際上它是.click函數中的變量。它現在很有意義,我被JSLint驗證引發了我指向錯誤的代碼行。 – GMan

3

我認爲JSLint是指代碼的這幾行(朝着您提供的代碼的底部):

var userEnteredDate = new Date($('#dateOfLastAccident').val()); // variable that stores user entered date 
var today = new Date(); 
var minutes = 1000 * 60; // calculation used to convert miliseconds to minutes 
var hours = minutes * 60; // calculation used to conver minutes into hours 
var days = hours * 24; // calculation used to convert hours to days 
var years = days * 365; // calculation used to convert days into years 
var daysSinceAccident = Math.floor((today.getTime() - userEnteredDate.getTime())/days); // calculation used to find the difference between current date and user entered date as a whole number 
var className = getClassName(daysSinceAccident); // variable clasName finds the correct css style to apply based on daysSinceAccident 

可避免分隔每個變量之間用逗號多次宣佈他們:

var userEnteredDate = new Date($('#dateOfLastAccident').val()), 
    today = new Date(), 
    minutes = 1000 * 60, 
    hours = minutes * 60, 
    days = hours * 24, 
    years = days * 36, 
    daysSinceAccident = Math.floor((today.getTime() - userEnteredDate.getTime())/days), 
    className = getClassName(daysSinceAccident); 
+0

沒錯,就是這樣。我被指向getClassName函數中的代碼行的JSLint錯誤拋出。謝謝 – GMan