 <p>The next element after a <code>td</code> cannot be a <code>checkbox:checked</code>, because it is by definition a <code>td</code> element. The syntax of your <code>if</code> statement is also off.</p> <p>You probably meant:</p> <pre><code>if ($(this).closest('td').next().find('input[type=checkbox]:checked').length) { // Do something } </code></pre> <p>or</p> <pre><code>if ($(this).closest('td').next().find('input[type=checkbox]').is(":checked")) { // Do something } </code></pre> <p><strong>Live Example:</strong></p> <p><div class="snippet" data-lang="js" data-hide="true"> <div class="snippet-code snippet-currently-hidden"> <pre class="snippet-code-js lang-js prettyprint-override"><code>$(document).on('click', '.exempt', function() { if ($(this).closest('td').next().find("input[type=checkbox]:checked").length) { alert("yes, it's checked"); } else { alert("no, it isn't"); } });</code></pre> <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;table&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style="text-align: center; width: 20px; " class=""&gt; &lt;input type="checkbox" class="exempt" name="exempt"&gt; &lt;/td&gt; &lt;td style="text-align: center; width: 20px; " class=""&gt; &lt;input type="checkbox" class="spammy" name="spammy"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td style="text-align: center; width: 20px; " class=""&gt; &lt;input type="checkbox" class="exempt" name="exempt"&gt; &lt;/td&gt; &lt;td style="text-align: center; width: 20px; " class=""&gt; &lt;input type="checkbox" class="spammy" name="spammy" checked&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"&gt;&lt;/script&gt;</code></pre> </div> </div> </p> <hr> <p>Separately: You have two elements with the same <code>id</code> value. That's invalid HTML, <code>id</code> values <strong>must</strong> be unique in the document.</p>