 <p>It means just what it says. The value being passed to the <code>text</code> method is the result of the expression <code>350 - ta.va().length</code>. The variable <code>ta</code> has not been defined at the point this code is being run.</p> <p>A few things to note before my proposed solution.</p> <ol> <li>You are correct in responding to the keypress event to truncate the user input, but there is no need to use an interval to update the count - just update it in the event handler.</li> <li>Don't put the function passed to <code>setInterval</code> in quotes. This causes it to be run through <code>eval</code>, which is both slower and less secure.</li> <li>Save jQuery objects in variables outside of the event handler so the same objects can be used each time the handler is invoked. This uses less memory and should be a tiny bit faster.</li> </ol> <p>Here's how I would implement this:</p> <pre><code>$(function () { var ta = $(".txtclass"), counter = $("#counter span"); ta.keypress(function () { var taValue = ta.val(); if (taValue.length &gt;= 350) { taValue = ta.val(taValue.slice(0, 350)).val(); } counter.text(taValue.length); }); }); </code></pre>