2013-10-11 2 views
6

JSLint Validierungsfehler „kombinieren diese mit der vorherigen Anweisung var“JSLint Validierungsfehler „kombinieren diese mit der vorherigen Anweisung var“

Wie kombiniere ich diese so bekomme ich nicht JSLint Validierungsfehler? Ich bekomme den Validierungsfehler in den Codezeilen in der Funktion 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

Ist das der gesamte Code? Was ist das vor der var-Anweisung? – Sheetal

Antwort

23

Dieser Fehler bedeutet, dass Sie mehrere var Aussagen in einigen Ihrer Funktionen aufweisen, wie:

var x = 1; 
var y = 2; 

JSLint möchte, dass Sie die Variablendeklarationen in einer einzigen var Aussage kombinieren, wie:

var x = 1, 
    y = 2; 
+0

Ich habe es herausgefunden. Aus irgendeinem Grund zeigte der JSLint-Validierungsfehler, dass der Fehler in der getClassName-Funktion war, aber tatsächlich waren es die Variablen in der .click-Funktion. Es macht jetzt Sinn, ich wurde von der JSLint-Validierung abgeworfen, die mich an die falsche Codezeile verweist. – GMan

3

Ich denke, JSLint bezieht sich auf diese paar Zeilen Ihres Codes (unten auf den von Ihnen bereitgestellten Code):

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 

Sie vermeiden können sie mehrfach erklärt, indem jede Variable mit einem Komma abgrenzt:

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

Ja das ist es genau. Ich wurde von dem JSLint-Fehler abgeworfen, der auf die Codezeilen in der Funktion getClassName verweist. Vielen Dank – GMan

Verwandte Themen