newtogit
newtogit

Reputation: 553

Is it possible to validate my jQuery JavaScript with JSLint?

I wanted to check my JavaScript with JSLint. I am also using jQuery and JSLint seems to be very unhappy about jQuery.

So, if I have this code:

$(document).ready{
    $("a").click(function() {
        // foo
    });
});

I am getting a few JSLint messages:

Error:

Problem at line 1 character 1: '$' was used before it was defined.

$(document).ready{

...

I had a look at the options but I couldn't figure out how to tell JSLint that this is ok.

If I had only one jQuery call in my code I could just ignore the JSLint message but in 2,500 lines of script there are lots of calls, I can't find the errors I'd like to fix between all these messages.

So, does anyone know how to configure JSLint such that it works with jQuery calls? Or is there something else I can use to check the quality of my JavaScript/jQuery code?

Upvotes: 31

Views: 26938

Answers (3)

Andy Balaam
Andy Balaam

Reputation: 6671

Add this at the top of your document to get it to validate:

/*jslint browser: true*/ /*global  $*/

Upvotes: 21

Vincent
Vincent

Reputation: 169

Nick is correct about your syntax. The latest release of jQuery (1.4.3) passes JSLint tests. See this blog post: http://blog.jquery.com/2010/10/16/jQuery-143-released/

Upvotes: 0

Nick Craver
Nick Craver

Reputation: 630439

That's not valid JavaScript, it should be:

$(document).ready(function() {

So JSLint will (appropriately) complain about your syntax.

If you want to get rid of the Implied global: $, document message, go to the bottom where it has Predefined (, separated), and put jQuery, $ in that textbox then run again. For the document piece, check Assume a browser in the first column.

All JSLint settings will stick, so you don't have to do this each time you go back.

Upvotes: 41

Related Questions