Sorry, I can't comment yet. But your code should work. Here is http://jsfiddle.net/eW5v5/ Are you sure that table exists by the time you run your calculation?
$( document ).ready(function(){
})
Even though you are waiting until DOM is created, there might be something else going on that creates it after.
Yes, and with vanilla JS you can do it like:
var row_no = document.querySelectorAll('tbody tr').length;
// or for older browsers:
// var row_no = document.getElementById('blacklistgrid').getElementsByTagName('tbody')[0].getElementsByTagName('tr').length;
alert(row_no);