jQuery n times .append($('<td></td>')) = less than n columns?
<pre><code>var user = {};
var row = $('&lt;tr&gt;&lt;/tr&gt;')
   .append($('&lt;td&gt;&lt;/td&gt;').text(user ? user.call_id : ''))
   .append($('&lt;td&gt;&lt;/td&gt;').text(user ? user.phone_number : ''))
   .append($('&lt;td&gt;&lt;/td&gt;').text(user ? user.dialed_number : ''))
   .append($('&lt;td&gt;&lt;/td&gt;').html(user &amp;&amp; user.admin ? '&lt;span class="textgreen"&gt;admin&lt;/span&gt;' : 'guest'))
   .append($('&lt;td&gt;&lt;/td&gt;').append(_talking(user ? user.mute : 0)))
   .append($('&lt;td&gt;&lt;/td&gt;').append($('&lt;span&gt;&lt;/span&gt;').addClass('timer').text(user ? user.duration : '')))
   .append($('&lt;td&gt;&lt;/td&gt;').addClass('nowrap').append(_userButtons(user)))
;
alert( row.find('td').size() );    // = does NOT always alert 7, but a smaller value
</code></pre>

<p>Why is that so?</p>

<p>At the moment, <code>user.dialed_number</code> is <code>undefined</code>, therefore the missing column is the third one. And it doesn't matter how much I repeat that column, the result is always <code>6</code> in my project.</p>

<p>** <strong>UPDATE</strong> **</p>

<p>Here is a simplified <a href="http://jsfiddle.net/Ry6XW/" rel="nofollow">jsfiddle</a> showing the problem; it should output <code>7</code>, but it shows <code>4</code></p>
